我正在努力思考这个概念SSH 代理转发。
这是我到目前为止所做的:
- 创建本地默认身份(ssh-keygen)
- 在 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 也会在远程自动启动。