【问题标题】:Use a particular id_rsa key file per host每个主机使用特定的 id_rsa 密钥文件
【发布时间】: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 方面的初学者,但有件事告诉我必须有一个聪明的方法来做到这一点。

感谢任何帮助。

【问题讨论】:

    标签: unix ssh ssh-keys


    【解决方案1】:

    您无需指定哪个密钥适用于哪个主机,只需重命名密钥并为每个密钥添加 IdentityFile 行:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-31
      • 1970-01-01
      • 2010-12-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2012-05-29
      • 2020-04-10
      相关资源
      最近更新 更多