如何使用 ssh-agent 从 ~/.ssh/config 文件中提供主机特定的密钥并管理密码?

Ala*_*chi 6 ssh ssh-agent

我在 ~/.ssh/config 文件中为它们配置了不同的主机和密钥。但是,为了管理不同密钥的密码,我通过 ssh-add 命令向 ssh-agent 添加密钥来寻求帮助。现在,当我 SSH 主机时,代理会一一提供它拥有的所有密钥。

我搜索了如何限制 ssh-agent 的这种行为,并使用

IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)

在所有主机的配置文件中。

通过这样做,我成功地限制了 ssh-agent 提供它拥有的密钥,但是 ssh-agent 不再管理密码短语,我每次 ssh 时都必须输入密码短语。

有没有办法只呈现我正在 ssh 的特定主机的密钥(从 ~/.ssh/config 文件中读取)并管理密码短语?

chb*_*chb 7

可以通过执行以下操作来解决此问题:

  1. 编辑您的客户端~/.ssh/config文件,使主机条目具有以下内容:

    Host fooName
        Hostname foo.name.tld
        User usrname
        IdentityFile ~/.ssh/fooName.pub
        IdentitiesOnly yes
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,IdentityFile指令是指公用密钥而不是私钥文件。

  2. 使用 将相关私钥添加到 ssh-agent ssh-add。此时应提示您输入密码。