【发布时间】:2013-08-07 17:58:00
【问题描述】:
我希望这是发布此内容的正确位置。
我有一个我通常在工作时连接的 VM。要在家中连接,我得到了以下说明:
将./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" 远程关闭连接主持人。
我错过了什么吗?也许我还需要在其他地方提供公钥?
我检查了 VM 中的 ~./ssh/authorized_keys 文件,我有一个用于工作计算机而不是家用计算机的 ssh-rsa 条目(我认为这是正常的,因为我使用的是工作提供的密钥。)
为什么IdentityFile ~/.ssh_acme/id_rsa 没有按预期工作?
每次我需要连接到某个地方时,我真的需要交换我的家庭/工作密钥吗?
我几乎是 ssh 方面的初学者,但有件事告诉我必须有一个聪明的方法来做到这一点。
感谢任何帮助。
【问题讨论】: