我通过SSH手动部署网站,我在github / bitbucket中管理源代码。对于每个新站点,我当前正在服务器上生成一个新密钥对并将其添加到github / bitbucket,以便我可以从服务器中获取机会。
我在capistrano中遇到一个功能,即使用本地计算机的密钥对来提取服务器的更新,ssh_options[:forward_agent] = true
我该如何做这样的事情并将我本地机器的密钥对转发到我正在进入SSH的服务器上,以便我可以避免为每个新站点添加密钥到github / bitbucket。
答案 0 :(得分:53)
结果非常简单,完整指南就在这里Using SSH Forwarding
实际上,如果文件不存在,则需要创建~/.ssh/config
文件。
然后,添加主机(文件中的域名或IP地址并设置ForwardAgent yes
)
示例代码:
Host example.com
ForwardAgent yes
让SSH生活更轻松。
答案 1 :(得分:19)
填写(主机地址是您要允许转发信用卡的主机的地址):
Host [host address]
ForwardAgent yes
如果您还没有运行ssh-agent,请运行它:
ssh-agent
从该命令获取输出并将其粘贴到终端中。这将设置需要设置的代理转发才能工作的环境变量。或者,您可以将此替换为步骤3和步骤3:
eval "$(ssh-agent)"
将要转发的密钥添加到ssh代理:
ssh-add [path to key if there is one]/[key_name].pem
登录远程主机:
ssh -A [user]@[hostname]
从这里开始,如果您登录到另一台接受该密钥的主机,它就会起作用:
ssh [user]@[hostname]
答案 2 :(得分:1)
配置文件非常有用,但代理转发的技巧是执行ssh-add
命令。似乎必须在任何远程连接之前或重新启动计算机之后初始触发。要永久添加密钥,请尝试使用daminetreg的以下解决方案:
Add private key permanently with ssh-add on Ubuntu