本文将解决以下问题:
- SSH免密登录无效?
- 正确配置服务器文件权限
chmod 700 .ssh和chmod 700 authorized_keys,以及复制粘贴的对应的公钥到authorized_keys里,还是无法免密访问? - SSH使用错误的私钥进行连接?
- SSH免密连接时没使用正确的秘钥去匹配?
- SSH免密连接时使用了不正确的私钥?
首先请确保你以正确生成并配置好了相关设置,包括本地和远程服务器
- 本地成功生成公钥和私钥
- 公钥信息已粘贴至服务器
~/.ssh/authorized_keys中 - 已更改
.ssh和authorized_keys的权限,建议755 - 保存后重启服务
systemctl restart sshd.service或者service sshd restart
在此基础上依旧无法免密访问才符合以下所描述的免密登录失败情况
第一步
查看登录细节
ssh -vvv username@hostname
在返回的信息中找到 attempt 表示连接时尝试使用的秘钥,如果没有使用到对应正确的秘钥,则表示免密失败的原因就是私钥使用不正确
解决办法
方法一
适用于linux系统
ssh-copy-id [-i sshfile] username@hostname
ali:表示生产密钥匙的自定义名称,默认是id_ras,生成时不设置自定义名称则也是id_ras
方法二
都适用
连接时带上对应私钥位置的参数
ssh -i /path/to/rsa.key UserNameA@RemoteHostName
配置config文件,在客户端的.ssh/下创建config(一般默认会有)
可以配置多个主机的详细参数
配置示例
Host host1
HostName 126.x7.6x.21
User root
IdentityFile /path/to/key1.key
Host host2
HostName 126.x7.6x.22
User root
IdentityFile /path/to/key2.key
2022/5/6号修改
IdentityFile如果提示找不到,需要给绝对地址,如C:\Users\zhouj889\.ssh