![使用 SSH 推送到 Bitbucket 是可行的,但我的服务器上没有私钥](https://linux22.com/image/651528/%E4%BD%BF%E7%94%A8%20SSH%20%E6%8E%A8%E9%80%81%E5%88%B0%20Bitbucket%20%E6%98%AF%E5%8F%AF%E8%A1%8C%E7%9A%84%EF%BC%8C%E4%BD%86%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%B2%A1%E6%9C%89%E7%A7%81%E9%92%A5.png)
当我的 Digital Ocean 服务器上没有私钥文件时,我怎样才能成功推送到 Bitbucket?
当我创建 Digital Ocean 服务器时,我为其提供了一个公钥。此密钥存储在文件中authorized_keys
,它允许我从本地计算机通过 SSH 进入服务器。
然后,我设置了一个 Bitbucket 帐户,并将相同的公钥添加到该帐户。现在,我可以在不使用密码的情况下从 Bitbucket 服务器推送和提取数据。但是,我完全搞不懂为什么这样做有效。我的 Digital Ocean 服务器上没有私钥文件,那么我如何能够成功连接?它是否以某种方式使用了我本地计算机上的私钥文件,因为这是我用来连接 Digital Ocean 服务器的?
编辑
我刚刚读到有关 SSH 代理转发的信息。这是怎么回事?在~/.ssh/config
我的本地计算机上的文件中,我有以下内容:
Host *
ServerAliveInterval 120
ForwardAgent yes
Host 128.host-that-is-not-bitbuck.com
ProxyCommand ssh also.not.bitbucket.net nc %h %p
这难道不意味着代理转发仅对列出的特定主机启用吗?
答案1
这是你的配置。
手册页上写道:
配置文件包含由“主机”规范分隔的部分
自从你的ForwardAgent yes
台词前该行Host 128.host-that-is-not-bitbuck.com
,它属于前一个Host
规范 - 并且由于该主机是*
,因此该ForwardAgent
选项适用于全部除非另有说明。
如果您希望代理转发仅适用于一个主机,则必须将其放在以该主机名开头的部分中。