1. 登录到服务器,生成 SSH 的密钥和公钥
ssh-keygen -t rsa
将公钥复制到 authorzied_keys 文件
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
修改 authorized_keys 权限为 644,.ssh 权限为700
chown -R 700 ~/.ssh chown -R 644 ~/.ssh/authorized_keys ls -a .ssh #查看用户权限
备注,生成的证书不留空证书密码的话,别人有证书也无法登录。
2. 修改服务器 ssh 配置
修改 sshd_config 配置文件 vi /etc/ssh/sshd_config,修改配置参数
# 允许密钥认证 PubkeyAuthentication yes # 公钥保存文件 AuthorizedKeysFile .ssh/authorized_keys # 取消 SSH 不希望home目录和~/.ssh目录对组有写权限【注意】 StrictModes no
网上有些文章提到 RSAAuthentication,RSAAuthentication (rsa认证)是只支持第1代ssh通讯协议使用的配置项,在CentOS7.4中被废除了。
重启 sshd
systemctl restart sshd
3. 下载私钥进行登录
下载服务器上的 ~/.ssh/id_rsa 私钥文件到本地,修改文件权限:
chmod 600 id_rsa
否则的话,会提示如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '/Users/test/cert/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "/Users/test/cert/id_rsa": bad permissions
进行 ssh 登录
ssh -i /Users/ice/Downloads/id_rsa root@192.168.1.133 ssh -i /Users/ice/Desktop/id_rsa root@192.168.1.133 -p 8822
4. 禁止使用密码登录
编辑/etc/ssh/sshd_config,将 PasswordAuthentication 的值修改为no,即 “PasswordAuthentication no”,然后重启sshd。
备注:
配置ssh免密码登录后,仍提示输入密码的解决方法:
首先我们就要去查看系统的日志文件
tail /var/log/secure -n 20
发现问题的所在:
sshd[9049]: Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys
从字面上可以看出是目录的属主和权限配置不当,查找资料得知:SSH不希望home目录和~/.ssh目录对组有写权限,通过下面几条命令改下
sshd_config 设置 StrictModes no
修改时间 2023-12-04
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏