我在Mac上运行,我想每周从我的VPS设置一个crontab到rsync来抓取一些备份档案。 我使用ssh密钥(在VPS上不允许密码),通常我可以在没有任何提示的情况下(我的私钥有一个密码,但它存储在Mac钥匙串中)ssh。 但是,当cron运行脚本时,它会失败,并通过电子邮件告诉我ssh失败: Permission denied (publickey). rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9] 正在执行的脚本: #!/bin/sh rsync -Cavz -e "ssh -i /Users/bob/.ssh/id_rsa" bob@myvps:/backups/ ~/Documents/Backups 我究竟做错了什么?
我们已经运行tacacs环境集中login到我们的路由器,防火墙等,甚至我们的大部分Linux的箱子ssh 我们想要做的是允许用户通过公共密钥身份validation到SSH,而不是必须input密码,但仍然通过tacacs授权检查确实允许login,授予访问权限,但如果用户被禁用在tacacs它应该被拒绝 这是可能的,如何实现 – 我们正在使用RedHat / CentOS与pam_tacplus 二级相关的问题:你将如何允许特定的系统帐户绕过tacacsauthentication,以便服务器到服务器脚本可以运行通过SSH和公共密钥authentication,而不需要存在tacacs也
我正在使用公私钥访问我的服务器。 用户“彼得”我可以访问服务器正常,但与用户“GIT”我无法访问服务器。 它总是问我一个密码。 如果我把密码,我可以正常login,但我当然要用钥匙login。 我正在为两个用户使用与此处检查的相同的密钥: peter@peter-ThinkPad:~$ ssh [email protected] Last login: Tue Jan 28 16:29:03 2014 from 192.168.0.108 [peter@git ~]$ sudo su [sudo] password for peter: [root@git peter]# diff /home/peter/.ssh/authorized_keys2 /home/git/.ssh/authorized_keys2 [root@git peter]# 权利也是正确的: [root@git peter]# ls -al /home/git/.ssh/ -rwx——. 1 git git 412 28. Jän 15:59 authorized_keys2 [root@git peter]# ls -al /home/git/ drwx——. 2 git […]
作为Sudo用户,是否可以在同一台Linux服务器上为用户创build一个SSH密钥? 这个Sudo用户没有Switch用户权限。 我有一个服务器,我login为sudo用户说'pipe理员'(没有切换用户权限),我有另一个用户说'user1'。 我在我的服务器上有一个脚本,它应该以'user1'运行,这个脚本应该调用在远程主机(远程主机有一个类似用户'user1')运行的另一个脚本,'user1'需要一个授权密钥主机authentication。 由于sudo用户“admin”没有权限切换为“user1”并生成ssh密钥,因此我必须生成“user1”的ssh密钥为“admin”
我有一个Ubuntu服务器,用于我的学生的两个主要目的: 要保留学生需要临时上传的文件(即:我给他们一个input图像,他们上传他们的作业.m文件和输出图像,这只是我的原始图像,他们已经通过他们的码)。 作为学生需要访问页面的代理块(无论什么愚蠢的原因)。 我为使用Ubuntu和Windows(通过puTTY)创buildSSH隧道的学生提供了说明,以及如何在Firefox中使用FoxyProxy来使用代理。 所有学生都需要生成一个公钥/私钥对,他们给我的公钥,我把它添加到我的Ubuntu服务器上的authorized_keys文件为他们的帐户。 他们需要有一个强密码encryption的私钥,而不是与其他学生分享。 我目前在authorized_keys中有一个以no-pty为前缀的单个条目,所以学生可以以代理身份login到服务器,并使用SFTP将file upload到服务器。 这正是我需要的设置。 但是,今后,我可以在服务器上启用telnet和FTP来限制帐户数量。 如果我想阻止任何服务具有交互式shell,那么我可以在/etc/shells添加/sbin/nologin或/dev/null ,并将单个用户的默认shell设置为/etc/passwd ,但是这会打破代理和SFTP设置,但显然允许FTP工作,而不允许交互式login。 有没有办法在一个地方设置“没有交互式shell”,或者我应该放弃设置telnet和FTP,并坚持到我的SFTP设置? 我所考虑的FTP和telnet的唯一原因是,据我所知,这比SFTP安全性要差一些,就是有些学生在使用防火墙来阻止SSH连接。 谢谢。
我已经从其他aws帐户的共享快照创build了一个实例,下面的步骤是由我完成的, 1.从其他帐户分享快照。 2.将其复制到我的帐户。 3.从卷volume ID-vol-594axxxx创build一个卷 4.使用volumenew ID-vol-704axxxx使用aws市场中的centos启动一个新的实例ID-i-497cxxxx 5.从实例中重新获取音量。 6.将volumeold附加到实例并启动实例。 做完所有这些后,我的机器正常工作,我能够启动我的应用程序。 现在,我无法使用SSHlogin。 每当我尝试,它会给出一个错误消息:“服务器拒绝您的密钥。”
从OpenSSH 6.2开始 ,使用AuthorizedKeysCommand可以使用基于密钥对的身份validation的外部程序。 根据sshd_config 手册页 ,该程序应该返回zero或更多行的authorized_keys输出。 假设configuration的程序返回多个键,是否有一种方法(比如ForceCommand下游)来确定使用哪个返回的键进行身份validation? 例如,如果每个密钥都有一个单独的用户,则这种方法效果很好。 然而,如果你正在共享一个用户(即'git')并且你想使用守护进程的ForceCommand (在sshd_config中configuration),那么你将失去使用哪个外部标识的用户和哪个密钥用于authentication的上下文。 Gitlab(和Gitosis)在共享一个'git'用户的地方做了类似的事情,但是维护了authorized_keys文件来把一个key_id命令行参数和他们的command=选项联系起来 ,允许他们在外部确定权限。 这似乎是他们如何链接密钥authentication与强制命令。 这个解决scheme在较小规模上效果很好,但似乎是一个噩梦,扩展到Github所拥有的数百万用户。 大规模,高可用性的SSH安装是否运行他们自己的OpenSSH版本? 我没有看到连接AuthorizedKeysCommand和ForceCommand的方法,而没有在OpenSSH设置中维护(如动物)文件。 在此先感谢您的帮助!
我有两个Ubuntu 14.04服务器S1(用户root)和S2(用户数据pipe理员)。 S1负责处理file upload并将备份传输到S2。 在S1我使用PubKey身份validationS2无密码rsync。 我使用bash脚本来简化传输(伪代码): while true do for each file/folder in mydir/*; do rsync -aPs "${file}" dataman@S2:"${REMOTE_DIR}" sleep 1 done 现在我的结果真的很奇怪 重做密钥设置(因为密钥或其他东西,已损坏) 重启S1的传输bash守护进程(守护进程作为root运行) 注意它成功同步一个文件 它到达另一个文件,调用rsync,并失败(不能SSH) 我继续S1和ssh dataman@S2但它要求input密码。 奇怪..所以我去S2,看到在authorized_keys我的pubkey从S1存在。 它呢。 我为S1和S2validation.ssh文件夹的权限..都很好。 再次从S1尝试SSH到S2 ..仍然提示input密码。 我不知道如何debugging,当我只有SSH访问这两个服务器。 我会在S2上运行SSH进行debugging,看看为什么S1(使用适当的pubkey)没有正确的身份validation,但我没有物理访问。 为什么rsync会影响任何sshconfiguration? 我在S2上的sshd_config: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
我试图部署我的git仓库到我的服务器。 为了使这个工作,我首先需要在我的区域设置计算机和我的服务器上设置ssh。 对于bitbucket我跟着https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html和pm2我跟着https://keymetrics.io/2014/06/25/ecosystem- JSON-部署和迭代更快的/ 我在我自己的计算机和我的服务器上创build了pub / priv密钥。 连接现在可以工作,因为我可以login到服务器而无需input密码。 对于服务器我遵循完全相同的步骤,但每次我重新连接到服务器,我得到了错误 Agent admitted failure to sign using the key. 我发现ssh-agent每次重新连接都离线,因此ssh-add -l不会打印任何结果。 我现在添加在.bashrc的末尾 eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa 这似乎工作,但总是提示我的.ssh/id_rsa密码 这可能是我的语言环境机器的pm2 deploy production setup返回的原因: Agent admitted failure to sign using the key. Cloning into '/home/myuser/myproject/source'… Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you […]
这种情况,我在AWS中inheritance了一个Windows基础结构。 ami是由现在已经离开业务的其他人的密钥对创build的。 我有要求删除这些密钥。 到目前为止,我发现的方法是创build一个新的Windows ami,从要删除密钥对的实例中分离出这些磁盘,并使用新的密钥对将其作为/ dev / sda1附加到新实例。 在我的testing中,我发现,一旦磁盘重新连接,您将无法恢复Windows密码,因为密钥对失败。 这很好,因为要更改的基础结构是ADlogin。 我将在今天testing一个testing实例,将有AD。 我的方法有什么问题,还是有更好的? 只是为了澄清它不是内部,它是他们创build的实际公共私人密钥对(其中16个)实际实例。 在实例仪表板中,每个服务器在密钥名称列中显示具有先生AN其他密钥名称。 企业希望改变