【发布时间】:2020-12-19 00:34:43
【问题描述】:
我在 ~/.config/ssh 中设置了 ssh,而不是默认的 ~/.ssh。
每次我执行git pull 或git push 时,都会收到以下消息:
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:....
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Failed to add the host to the list of known hosts (/Users/username/.ssh/known_hosts).
输入yes后,下一步添加主机到known_hosts失败,但操作(git pull和git push)成功完成。
操作完成后没有~/.ssh(因此也没有~/.ssh/known_hosts)。
我已知的 hosts 文件的位置是:~/.config/ssh/known_hosts。
我已经完成了:
ssh -o UserKnownHostsFile=~/.config/ssh/known_hosts -T git@github.com
和
eval $(ssh-agent)
ssh-add -K ~/.config/ssh/id_rsa
还使用 pbcopy < ~/.config/ssh/id_rsa.pub 将 SSH 密钥添加到我的 github 配置文件中。
~/.config/ssh/config的内容:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.config/ssh/id_rsa
~/.config/ssh/known_hosts的内容:
github.com,192.30.255.112 ssh-rsa ...
...
...==
192.30.255.113 ssh-rsa ...
...
...==
~/.config/ssh的文件权限:
drwxr-xr-x 6 username staff 192 Aug 29 19:12 .
drwxr-xr-x 7 username staff 224 Aug 29 16:17 ..
-rw-r--r-- 1 username staff 83 Aug 29 19:01 config
-rw------- 1 username staff 3434 Aug 29 19:00 id_rsa
-rw-r--r-- 1 username staff 747 Aug 29 19:00 id_rsa.pub
-rw-r--r-- 1 username staff 803 Aug 29 19:31 known_hosts
编辑:
执行ssh -o UserKnownHostsFile=$HOME/.config/ssh/known_hosts git@github.com 给出:
git@github.com: Permission denied (publickey)
如何避免在每个 git pull 和 git push 中输入“是”?
【问题讨论】:
-
您不必指定主机文件路径,而且您的 shell 可能不会扩展波浪号,因为它位于字符串的中间。接受后主机密钥是否显示在您的 known_hosts 文件中?
-
@StephenNewell 不,它没有。输入 yes 后,拉/推操作继续(参见第一个代码块)。没有
~/.ssh目录(里面也没有known_hosts文件)。 -
抱歉,在您的问题中错过了这一点。检查文件的权限。
-
我已经添加了目录的文件权限。请看一看。
-
正如@StephenNewell 所说,
ssh -o UserKnownHostsFile=~/.config/ssh/known_hosts正在离开波浪号未扩展。您的 ssh 可能无法处理(例如,我 Mac 上的 ssh 没有)。使用$HOME而不是~以便将其展开。