我希望这是发布此内容的正确位置。
我有一个我通常从工作中连接的虚拟机。要在家中连接,我得到了以下说明:
从工作机器复制并粘贴./ssh/id_rsa
到./ssh/id_rsa.pub
家用机器。还要制作一个配置文件,如:
# Debian VM
Host nacho4d.dev.acme.com
# IdentityFile ~/.ssh_acme/id_rsa
User nacho4d
ProxyCommand ssh ns.dev.acme.com -l nacho4d nc -w 1 %h %p
# Tunnel/springboard server
Host ns.dev.acme.com
# IdentityFile ~/.ssh_acme/id_rsa
User nacho4d
ProxyCommand ssh ts6.in.acme.com -l nacho4d nc -w 1 %h %p
所以一切都很好:
$ ssh nacho4d.dev.acme.com
问题是我已经拥有自己的(非工作)私钥,并且我不想每次需要使用 ssh 时都将其替换为工作 .ssh 文件夹。太乏味了。
如何使用特定密钥等仅连接到特定服务器?
我试着把我的文件像:
~/.ssh/id_rsa
→ 家庭私钥~/.ssh/id_rsa.pub
→ 家庭公钥~/.ssh/config
→ 像上面一样的配置文件,但启用了 IdentityFile~/.ssh_acme/id_rsa
→ 工作私钥~/.ssh_acme/id_rsa.pub
→ 工作公钥
我认为拥有一个带有 IndentityFile 的配置文件应该使 ssh~/.ssh_acme/id_rsa
为该特定主机使用特定的密钥(在本例中指向),但我总是得到“Permission Denied” Connection closed by remote host。
我错过了什么吗?也许我还需要在其他地方提供公钥?
我检查了 VM 中的 ~./ssh/authorized_keys 文件,我有一个工作计算机而不是家用计算机的 ssh-rsa 条目(我认为这是正常的,因为我使用的是工作提供的密钥。)
为什么IdentityFile ~/.ssh_acme/id_rsa
没有按预期工作?每次我需要连接到某个地方时,我真的需要交换我的家庭/工作密钥吗?我几乎是 ssh 方面的初学者,但有些事情告诉我必须有一个聪明的方法来做到这一点。
任何帮助表示赞赏。