如何在SSH会话中转发本地密钥对?
我通过SSH手动部署网站,我在github/bitbucket中管理源代码。对于每个新站点,我目前正在服务器上生成一个新的密钥对,并将其添加到github/bitbucket中,这样我就可以从服务器上获取机会 我在capistrano中发现了一个特性,即使用本地机器的密钥对将更新拉到服务器,这就是如何在SSH会话中转发本地密钥对?,ssh,ssh-keys,Ssh,Ssh Keys,我通过SSH手动部署网站,我在github/bitbucket中管理源代码。对于每个新站点,我目前正在服务器上生成一个新的密钥对,并将其添加到github/bitbucket中,这样我就可以从服务器上获取机会 我在capistrano中发现了一个特性,即使用本地机器的密钥对将更新拉到服务器,这就是ssh\u options[:forward\u agent]=true 我怎样才能做到这一点,并将本地机器的密钥对转发到我正在使用SSH的服务器上,从而避免为每个新站点向github/bitbucke
ssh\u options[:forward\u agent]=true
我怎样才能做到这一点,并将本地机器的密钥对转发到我正在使用SSH的服务器上,从而避免为每个新站点向github/bitbucket中添加密钥。这非常简单,完整的指南就在这里 本质上,如果文件不存在,您需要创建一个
~/.ssh/config
文件
然后,添加主机(文件中的域名或IP地址,并设置ForwardAgent yes
)
示例代码:
Host example.com
ForwardAgent yes
使SSH的使用更加轻松。配置文件非常有用,但代理转发的技巧是使用
SSH add
命令。这似乎必须在任何远程连接之前或计算机重新启动之后进行初始触发。要永久添加密钥,请从用户daminetreg尝试以下解决方案:
ssh-agent
eval "$(ssh-agent)"
ssh-add [path to key if there is one]/[key_name].pem
ssh -A [user]@[hostname]
ssh [user]@[hostname]
答案中链接的伟大文章;要为OSX用户总结,您可能需要
sudo vim/etc/ssh_config
并删除ForwardAgent no
主机通配符禁用,然后ssh add~/.ssh/your_key
以允许本地代理转发该标识。如果您需要,则添加echo'host example.com\n ForwardAgent yes'>~/.ssh/config将不起作用使用公共ipssh node-1.example.com
连接到ssh,然后使用代理转发尝试使用ssh${user}@$(hostname-s)
跳转。它将询问您的密码。在我的OSX El Capitan上,我根本不需要乱用/etc/ssh\u config,但我确实需要运行ssh add
,然后转发才能为我工作。@0您救了我的命!还可以简单地ssh-o ForwardAgent=yesroot@x.x.x.x
一次性使用。
ssh [user]@[hostname]