服务器上的 SSH 代理转发

服务器上的 SSH 代理转发

我正在努力思考这个概念SSH 代理转发
这是我到目前为止所做的:

  1. 创建本地默认身份(ssh-keygen)
  2. 在 bitbucket 上安装公钥

现在我想连接到像 ssh 这样的服务器[email protected]

然后我通常会在服务器上创建一个密钥ssh 密钥生成器再次复制公钥并将其添加到我的 bitbucket SSH 密钥中。之后,我可以克隆我的 SSH 存储库并拉/推到 bitbucket 存储库。但这不是这样做的方法。

如何确保不必在服务器上创建密钥?我读过很多教程,比如但我仍然在为 ssh 代理转发而苦苦挣扎。

更新:

我尝试过做教程,但我已经卡在第 1 步了。他们说你需要将以下文本添加到你的配置文件中(位于 ~/.ssh/config):

Host example.com
 ForwardAgent yes

在第一步之前,我的配置文件如下所示:

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa

这一步之后看起来像这样:

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa

Host mysite.be
 ForwardAgent yes

要尝试它是否有效,您需要在服务器上执行以下命令:

ssh -T [email protected]

Permission denied (publickey).尝试过这个,但我的服务器上出现错误。

答案1

看起来您可能实际上没有将密钥添加到代理中。

如果您的本地工作站是 Linux,那么可能有一个代理作为您会话的一部分运行,您可以使用以下命令检查其内容ssh-add -l

如果密钥尚未添加到代理中,您也可以使用以下命令添加它ssh-add

之后,当您ssh访问 mysite.be 时,您应该能够看到运行时列出的密钥指纹ssh-add -l

答案2

认为您可能缺少 [User],如......

托管 mysite.be
    在此处使用您的用户名
    转发代理 是

然后在你的控制台中执行...

$ ssh mysite.be

通过这种方式,当远程服务器 mysite.be 受到 Bitbucket 质询时,本地计算机上的 SSH 客户端会将远程用户 [your_user_name_here] 的凭据转发到远程服务器 mysite.be。 ssh-agent 也会在远程自动启动。

相关内容