如何配置 ssh 以自动加载更多私钥?

如何配置 ssh 以自动加载更多私钥?

ssh 如何寻找私钥来加载?

我知道它确实会尝试加载~/.ssh/id_rsa,此后~./.ssh/id_dsa

现在我确实有两个密钥。是否可以以 ssh 可以直接获取的方式命名它们?

如果没有,是否有可能欺骗它,并将第二个密钥放入id_dsa文件中,即使它是一把rsa密钥?

答案1

  • 如果 SSH 代理正在运行,远程控制尝试加载到代理中的所有密钥。

  • 如果有选择,-i file远程控制使用指定的密钥。

  • 如果IdentityFile在命令行或中设置~/.ssh/config远程控制使用指定的密钥。(您可以为每个主机名或域指定密钥。请参阅ssh_config(5)手册页。

  • 否则,它将使用目录中的硬编码列表 { id_ecdsaid_rsaid_dsa} ~/.ssh

其中,ssh 代理可能是最方便的选项——它还消除了每次解锁私钥的需要。用于ssh-add ~/.ssh/id_dsa加载密钥。如果代理未运行,请exec ssh-agent bash使用以下工具启动它:钥匙链(通常,GNOME、Unity 或 Mac OS X 等环境应该会自动启动代理。)

如果您决定不使用ssh 代理,并且您需要为不同的机器使用不同的密钥,您可以编辑~/.ssh/config

Host one.example.com
    IdentityFile ~/.ssh/id_one
Host two.example.com
    IdentityFile ~/.ssh/id_two
Host *.foo.org
    IdentityFile ~/.ssh/id_foo.org

请注意,文件名对远程控制;它将对id_dsa和进行id_asdfghjk同等对待。这意味着你命名一个 RSA 密钥id_dsa。但是,它不会接受单个文件中的两个密钥。

相关内容