如何在SSH会话中转发本地密钥对



我通过SSH手动部署网站,我在github/bitbucket中管理源代码。对于每个新站点,我目前都在服务器上生成一个新的密钥对,并将其添加到github/bitbucket中,这样我就可以从服务器中获得机会。

我在capistrano中发现了一个使用本地机器的密钥对将更新拉到服务器的功能,即ssh_options[:forward_agent] = true

我该如何做这样的事情,并将我的本地机器的密钥对转发到我正在SSH访问的服务器,这样我就可以避免为每个新站点向github/bitbucket添加密钥。

这是一个非常简单、完整的指南,在这里使用SSH转发

本质上,如果~/.ssh/config文件不存在,则需要创建它。

然后,在文件中添加主机(域名或IP地址,并设置ForwardAgent yes

样本代码:

Host example.com
    ForwardAgent yes

让SSH的生活轻松多了。

  1. 创建~/.ssh/config
  2. 填写(主机地址是您希望将信用证转发到的主机的地址):

    Host [host address]
         ForwardAgent yes
    
  3. 如果您还没有运行ssh代理,请运行它:

    ssh-agent
    
  4. 将该命令的输出粘贴到终端中。这将设置代理转发工作所需设置的环境变量。可选地,您可以将此和步骤3替换为:

    eval "$(ssh-agent)"
    
  5. 添加要转发到ssh代理的密钥:

    ssh-add [path to key if there is one]/[key_name].pem
    
  6. 登录远程主机:

    ssh -A [user]@[hostname]
    
  7. 从这里开始,如果你登录到另一个接受该密钥的主机,它就会正常工作:

    ssh [user]@[hostname]
    

要简单地将其与默认标识(id_rsa)一起使用,可以使用以下两个命令:

ssh-add
ssh -A [username]@[server-address]

配置文件非常有用,但代理转发的诀窍是执行ssh-add命令。这似乎必须在任何远程连接之前或重新启动计算机之后进行初始触发。要永久添加密钥,请尝试用户daminetreg的以下解决方案:在Ubuntu 上使用ssh添加永久添加私钥

它非常有用:

ssh -i [private-key] -A [user]@[host]

您可以在bash_aliases或其他命令例程中设置一个命令。

最新更新