0

我希望这是发布此内容的正确位置。

我有一个我通常从工作中连接的虚拟机。要在家中连接,我得到了以下说明:

从工作机器复制并粘贴./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 方面的初学者,但有些事情告诉我必须有一个聪明的方法来做到这一点。

任何帮助表示赞赏。

4

1 回答 1

0

您无需指定哪个键与哪个主机一起使用,只需重命名键并IdentityFile为每个键添加一行:

IdentityFile ~/.ssh/id_rsa_dev_acme
IdentityFile ~/.ssh/id_rsa_in_acme

可能因为(0700) 或(0600)~/.ssh_acme/id_rsa上的权限不正确而未使用其中的密钥~/.ssh_acme~/.ssh_acme/id_rsa

最后,这个问题在http://unix.stackexchange.com上可能更相关

于 2013-08-07T08:09:50.653 回答