Articles of ssh agent

为什么ssh-agent设置了SGID?

在openssh Red Hat包中,我注意到ssh-agent可执行文件具有SGID权限集: $ ls -l /usr/bin/ssh-agent -rwxr-sr-x 1 root nobody 113648 Nov 24 2010 /usr/bin/ssh-agent 为什么openssh开发者希望ssh-agent与nobody组一起运行? 或者,也许我误解了SGID的作用?

SSH转发的哪一部分设置了SSH_AUTH_SOCK?

我试图从我的Mac到Debian服务器获得SSH代理转发工作。 在我的Mac上,我已经证实我有: 存在SSH_AUTH_SOCK ssh-add -l显示我的身份 ./ssh/config具有启用ForwardAgent的设置 无密码login到远程服务器工作正常。 但是,我的身份没有可用的那里,SSH_AUTH_SOCK是空的。 我想了解这是如何在远程环境中设置的,我错过了什么使它工作? 更新: 我的服务器在sshd_config中设置为AllowAgentForwarding=yes ,在ssh_config中设置为ForwardAgent=yes 。 我发现一些教程,build议运行eval “ssh-agent eval “ssh-agent ,所以我尝试了,但我怀疑这是为客户端机器。 当我在我的服务器上运行它时,它确实build立了一个SSH_AUTH_SOCK,但是它似乎没有连接回客户端代理,并且显示“代理没有身份”。

ssh-agent行为的差异

这似乎是我有两个帐户我configuration的ssh代理行为之间的差异。 我写了一个简单的监控脚本来检查我们运行的一些虚拟机的可用性。 我用我的主要访问帐户做了所有的testing和debugging。 在此过程中,我生成了一个SSH密钥对,启动了ssh-agent,并将该身份添加到代理以允许脚本无需密码即可ssh。 现在,我想运行这个脚本作为服务帐户用户。 我创build了服务帐户,并生成密钥临时将loginshell设置为/ bin / bash。 我生成了我的密钥,删除了密码,并将身份添加到代理。 这种差异似乎与shell连接到代理的方式有关。 在我的用户帐户中,自从我开始testing(大约两周)以来,我不必重新启动代理。 但是,当我尝试运行服务帐户下的脚本时,我似乎不得不重新启动代理,每次添加标识,然后执行该工作。 理想情况下,我希望代理无限期地运行,并在脚本运行时自动重新连接服务帐户,这样我就不需要在脚本中pipe理进程。 我查看了每个帐户的configuration,找不到任何区别。 任何有识之士将不胜感激。 **编辑:我忘了指出,代理不断运行,但服务帐户的shell进程似乎并没有利用它,一个新的必须开始: ovmmon 14043 0.0 0.0 53916 204 ? Ss May17 0:00 ssh-agent ovmmon 14952 0.0 0.0 53916 204 ? Ss May17 0:00 ssh-agent

试图添加ssh-key时如何解决“无法打开连接到你的authentication代理”错误?

我正在使用Ubuntu服务器10.04。 ssh-add /foo/cert.pem给出了以下输出: 无法打开与身份validation代理的连接。 这些是我的运行过程: ps -aux | grep ssh Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html root 1523 0.0 0.0 49260 632 ? Ss Dec25 0:00 /usr/sbin/sshd root 10023 0.0 0.3 141304 6012 ? Ss 12:58 0:00 sshd: padmin [priv] padmin 10117 0.0 0.1 141304 2400 ? S 12:58 0:00 sshd: […]

通过脚本将密码传递给您的SSH密钥

我正在编写一个脚本,可以让我一次从我所有的服务器上检索文件。 我有SSH密钥以login到我的服务器。 但是,我的SSH密钥需要密码。 我写的脚本不会自动化,只能手动运行。 所以我的脚本提示用户inputSSH密码。 如何将密码发送到SSH密钥,因为它连接到每个服务器。 我试图避免在每个服务器input我的密码。 我知道我可以使用'期望',但我希望有一个简单的方法来做到这一点。 也许有一些环境variables? 谢谢。

socat可以用来转发一个SSH代理套接字到一个chroot?

我正在通过SSH连接的远程服务器上构build定制的Debian环境。 这包括构build一个debootstrap环境,然后通过chroot来运行一个定制的安装程序。 作为定制安装过程的一部分,我需要安装程序能够将chroot环境ssh移出到远程服务器,在chroot 外部使用ssh-agent的SSH凭据重新使用。 我根本无法想象如何做到这一点。 原则上,我认为在调用chroot之前,我应该可以使用socat将$ SSH_AUTH_SOCK转发到chroot环境中,如下所示: socat UNIX-CONNECT:$SSH_AUTH_SOCK UNIX-LISTEN:chroot_root$SSH_AUTH_SOCK,fork & sudo -E chroot chroot_root /bin/bash 但是,一旦我尝试在chroot中使用ssh,就会给我一个破解来自socat的pipe道,我想这是可以理解的(以某种方式)。 有没有办法解决? 我在chroot之前设置了一个SSH主套接字,并在chroot中使用了这个套接字,但是这会涉及对安装程序的相当侵略性的重写,所以我并不热衷于这个计划。 UPDATE 事实certificate,我可以通过创build一个到套接字的硬链接来获得我想要的效果。 我真的没有想到会工作。

在分离的屏幕会话中的ssh代理授权

我有一个ssh脚本,它使用远程系统上的ssh密钥转发在更远的系统中执行。 我必须在屏幕会话中运行脚本,以便我可以从中分离。 但是,通过ssh-key-forwarding授予远程系统的授权需要存在。 至less在脚本完成之前。 任何想法如何去呢?

SSH:防止当ssh-agentauthentication失败时询问密码

我正在编写一个脚本来遍历一个已知的主机名列表,以便find一个可以使用我的SSH密钥进行身份validation的正在运行的SSH服务器。 密钥已经加载了ssh-agent和ssh-add ,所以如果我连接到一个知道我的密钥的正在工作的远程主机,没有提示密码,并且我没有任何交互成功连接。 事情是,当远程主机不知道我的密钥, ssh提示我的密码短语(它没有机会成功,因为,如果可能的话,它已经login了我感谢ssh-agent )。 我想阻止这种行为,并在ssh-agent身份validation失败时使ssh中止。 我目前使用下面的命令来绕过大部分的交互,但我不能阻止我刚才描述的那个: $ ssh -i ~/.ssh/id_rsa \ -o UserKnownHostsFile=/dev/null \ -o KbdInteractiveAuthentication=no \ -o StrictHostKeyChecking=no \ -o PreferredAuthentications=publickey \ -o ConnectTimeout=1 \ $host -n "whoami" 感谢您的回答。

我的VPS和Bitbucket之间的SSHvalidation失败

我正在尝试在我的VPS和Bitbucket之间设置SSH身份validation,以便稍后通过Capistrano(适用于Web项目)和Capifony(适用于Symfony2项目)自动部署,以便按照以下步骤进行configuration: 以root用户身份login我的VPS并执行cd〜命令,并将其指向/root home。 运行命令ssh-keygen -t rsa -C "[email protected]" 然后通过运行命令ssh-add ~/.ssh/id_rsa将密钥添加到ssh-agent 最后我试着通过运行ssh -T "[email protected]"@bitbucket.org来testing一切是否正常,但得到这个错误: 权限被拒绝(publickey)。 我想念什么? 任何帮助或build议?

OpenSSH以哪种顺序尝试私钥?

我很难find正确的文档在OpenSSH客户端尝试私钥对服务器进行身份validation的顺序,因为以下所有内容都存在: 在~/.ssh使用默认名称的密钥文件,例如~/.ssh/id_rsa , 具有非默认名称的密钥文件通过~/.ssh/configconfiguration为与特定主机一起使用, 由ssh-agentpipe理的密钥。 是否所有这些位置总是尝试(假设主机匹配~/.ssh/config中的条目),并且以何种顺序? 背景:我有~/.ssh/id_rsa只能用来对服务器A进行身份validation,而我有另一个由ssh-agentpipe理的密钥,只能用来对服务器B进行身份validation。 当试图对B进行ssh时,authentication失败,显然是因为只有 ~/.ssh/id_rsa被尝试。 似乎没有回退尝试由ssh-agentpipe理的密钥。