如何在 ssh 客户端中仅对一台主机使用私钥?

qub*_*ber 6 ssh

我正在使用Ubuntu。如何在 ssh 客户端中仅对一台主机使用私钥?私钥用于所有主机,每次连接到任何服务器时,都会使用私钥身份验证。

Nic*_*teo 8

您需要在 处创建或编辑 SSH 配置文件~/.ssh/config

有关所有详细信息,请检查man ssh_config。但基本上,它由几个这样的条目组成:

Host example
    Hostname example.com
    User quber
    IdentityFile ~/.ssh/my_idfile
Run Code Online (Sandbox Code Playgroud)

一行Host介绍每个主机,下面的行是缩进的。主机行上的名称是昵称(您将键入ssh example而不是ssh quber@example.com。)如果您不想使用昵称,可以使用完整的主机名:

Host example.com
    User quber
    IdentityFile ~/.ssh/my_idfile
Run Code Online (Sandbox Code Playgroud)

现在 ssh 将自动为该主机使用指定的用户名和私钥,并且仅限于该主机。

如果您不希望私钥用于其他主机,请确保它未命名为id_dsaid_rsa或所有主机默认使用的其他文件(整个列表位于man ssh)。给它一个唯一的名称,也许与其所属的主机有关。

  • @quber 请参阅“man 5 ssh_config”,其中描述了“IdentityFile”。*默认情况下*使用“~/.ssh/id_rsa”(即也适用于您的情况下的其他服务器)。对您不希望自动使用的密钥使用非默认名称。然后像答案所说的那样在配置文件中指定重命名的密钥。我认为答案故意将示例键命名为“my_idfile”,*而不是*“id_rsa”。 (2认同)