服务器上的 SSH 代理转发

nie*_*lsv 5 ssh git ssh-agent

我正在为SSH Agent Forwarding的概念苦苦挣扎。
这是我到目前为止所做的:

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

现在我想连接到像 ssh 这样的服务器myserver@myserver.be

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

如何确保不必在服务器上创建密钥?我读过很多教程像这样,但我仍然使用ssh代理转发挣扎。

更新:

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

Host example.com
 ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

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

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

在这一步之后,它看起来像这样:

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa

Host mysite.be
 ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

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

ssh -T git@bitbucket.org
Run Code Online (Sandbox Code Playgroud)

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

小智 0

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

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

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

$ ssh mysite.be

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