ssh公钥认证失败问题
首次连接一个远程主机时,SSH客户端会提示确认远程主机的密钥指纹是否可信。
如果确认没问题,输入 yes 继续
The authenticity of host '[192.168.100.102]:25000 ([192.168.100.102]:25000)' can't be established.
RSA key fingerprint is SHA256:aBCDefghijk/LMN12345/sss78.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入 yes 后提示
Failed to add the host to the list of known hosts (/home/aaa/.ssh/known_hosts).
aaa@192.168.100.102: Permission denied (publickey).
fatal: Could not read from remote repository
博主之前换过工作目录,然后发现 .ssh 文件夹还在原目录,将.ssh文件夹复制到当前工作目录下
aaa@aaa:~$ ls .ssh
config id_rsa id_rsa.pub known_hosts
检查 .ssh 目录和 know_hosts文件权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/known_hosts
检查本地私钥文件权限,该文件权限必须设置为只有当前用户可读写
chmod 600 ~/.ssh/id_rsa
再次测试SSH连接
ssh aaa@192.168.100.102 -p 25000
仍然报权限问题,无法将远程主机密钥添加到known_hosts
hostkeys_find_by_key_hostfile: hostkeys_foreach failed for /home/aaa/.ssh/known_hosts: Permission denied
检查文件的所有者
ls -ld ~/.ssh ~/.ssh/known_hosts
发现复制过来的文件所有者均属于root
修改文件的所有者成当前用户
chown aaa:aaa ~/.ssh
chown aaa:aaa ~/.ssh/known_hosts
再次测试发现还是不行,于是重新添加本地公钥到远程服务器
cat ~/.ssh/id_rsa.pub
发现还是报错,于是cat了一下.ssh/config文件
发现文件中并未覆盖尝试连接的目标主机,于是向config文件中添加了如下内容
Host 192.168.100.102
HostName 192.168.100.102
User aaa
Port 25000
IdentityFile ~/.ssh/id_rsa
PreferredAuthentications publickey
StrictHostKeyChecking no
UserKnownHostsFile ~/.ssh/known_hosts
PubKeyAcceptedKeyTypes +ssh-rsa
再次尝试,就解决了~