反向ssh代理转发。 使用远程SSH密钥

我有一个密钥服务器上的ssh-agent我的github.com私人ssh密钥。 从我的家庭计算机背后NAT我想运行git pull并使用我的github ssh密钥。

我知道这样做的唯一方法是ssh到关键的服务器和转发端口22,然后ssh回到我的家用电脑,而转发代理,然后运行git pull在新的shell像这样:

 home$ ssh keyserver -R10022:localhost:22 keyserver$ ssh -A localhost -p10022 home$ git pull 

有没有更简单的方法来使用远程SSH密钥?

在类似于你的场景中,我使用了两种不同的方法。

  1. 在本地启动代理
  2. 转发到服务器
  3. 使用ssh-add将密钥从服务器添加到您的本地代理(可select使用有限的生命周期)
  4. 从服务器注销
  5. 按照您的意愿多次使用本地代理商的密钥

要么

  1. 在本地启动代理
  2. ssh服务器猫密钥文件| ssh-add / dev / stdin

如果服务器的configuration方式不会让您的密钥从服务器上卸下,上述两种方法都无法工作。 在这种情况下,没有任何解决办法,比你自己的方法更简单。 但也有替代scheme,可以提供更好的用户体验和/或安全性。

这个命令会打开你自己的示例中使用的同一对ssh连接。 但是,然后返回到可以使用转发代理的启动shell。

 export $(grep -m1 ^SSH_AUTH_SOCK= <( ssh -n -R10022:localhost:22 keyserver ssh -A localhost -p10022 "'env ; sleep 99999'"))