openEuler 使用密钥登录SSH以及遇到的奇怪问题(一直提示Failed publickey for root,结果最后重启好了)
密钥登录方法:很多博客都有介绍,就不详细说了,重点说一些注意事项:
1.第一步生成公钥和私钥:
openSSH 8.8以上已经去除一些不安全密钥算法协议,包括RSA-SHA1(只输ssh-keygen默认为此协议),而 欧拉22.03携带版本是8.8,所以必须指定其他支持的协议,建议使用ed25519算法,即使用以下命令:
ssh-keygen -t ed25519
2.将生成的公钥 复制到 服务器 要登录用户的 家目录(root用户为/root,其他用户为/home/用户名)/.ssh/authorized_keys 文件里,没有的话自己创建;
其中openSSH 为了安全,只允许 文件所有者有写入权限,所以如果权限不对,要自己修改 .ssh 为700,authorized_keys为600
3.编辑配置文件 /etc/ssh/sshd_config,确保以下项目正确
PermitRootLogin yes
4.测试登录成功后,可以禁用密码登录,同样编辑3里的配置文件
6.Windows10 也默认安装了openSSH,可以通过命令行使用,一些ssh连接工具如(mobaxterm)也提供了生成密钥的功能:
Tools-->MobaKeyGen--->复制公钥到服务器,下载私钥到客户端
详细可参考:MobaXterm设置ssh免密码登录服务器教程 - Deceiver_Ker - 博客园 (cnblogs.com)
如果碰到登录不了,定位问题方法
1.查看安全日志文件/var/log/secure
2.打开ssh详细日志 /etc/ssh/sshd_config 将日志级别调整到 LogLevel VERBOSE
然后使用命令查看ssh 日志: journalctl --unit sshd --no-pager
journalctl --unit sshd --no-pager