我已经按照以下说明为 git 创建了密钥http://help.github.com/linux-set-up-git/
这很好,但是当我尝试 ssh 到另一台主机时,它会尝试使用相同的公钥。此外,ssh 到没有公钥的服务器,但密码验证失败,
$ssh user@host
Permission denied (publickey,password).
我该如何解决这个问题,以便对 github 使用默认密钥,但不对其他主机使用默认密钥?
我看见这但我不想为每个主机添加条目,我希望其他人表现得像我没有配置任何密钥并要求输入密码。
答案1
重命名您的 GitHub 密钥,使其不使用任何默认密钥文件ssh
(类似于~/.ssh/id_rsa_github
)。然后将以下内容添加到~/.ssh/config
以告知ssh
仅使用此密钥连接 GitHub。
Host *.github.com
IdentityFile ~/.ssh/id_rsa_github
所有其他连接都不会尝试密钥身份验证,因为没有默认密钥。但是,这种情况通常不会造成任何损害 - 如果密钥被拒绝,ssh
则会尝试密码身份验证(如果可用)。
答案2
使用你的.ssh/config
和IdentityFile
表达式:
指定从中读取用户的 RSA 或 DSA 身份验证身份的文件。对于协议版本 1,默认为 ~/.ssh/identity,对于协议版本 2,默认为 ~/.ssh/id_rsa 和 ~/.ssh/id_dsa。此外,身份验证代理所代表的任何身份都将用于身份验证。
然后参考.ssh/id_rsa_github
(或者你的“仅适用于 github”密钥对的名称)