先说一下步骤,如下
参考:https://www.cnblogs.com/rickiyang/p/11074203.html
1、安装ssh
直接 sudo apt-get install openssh-server
2、查看ssh运行状态
ps -e | grep ssh
如果发现 sshd 和 ssh-agent 即表明 ssh服务基本运行正常
3、生成公钥和私钥
ssh-keygen -t rsa
4、将公钥追加到文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5、测试ssh localhost 如果不用输入密码即可以登录
6、失败原因之一:
可能是.ssh以及其下属的子文件的权限问题
设置.ssh目录的权限为700.rsa的权限是600,其余的是644-rw-rw-r-- 1 uploaduser uploaduser 402 Nov 23 10:06 authorized_keys
-rw------- 1 uploaduser uploaduser 1679 Nov 23 10:05 id_rsa
-rw-r--r-- 1 uploaduser uploaduser 402 Nov 23 10:05 id_rsa.pub
-rw-r--r-- 1 uploaduser uploaduser 352 Nov 23 10:06 known_hosts.ssh的父级目录权限应该是755,即home下当前登陆用户文件。如果有权限不对的可以看一下
网上说的免密登录失败原因有许多基本这些文章中都提到啦,譬如
解决SSH免密登录配置成功后不生效问题_ssh免密登录配置不生效-CSDN博客
CentOS系统SSH免密后依然需要输入密码(已解决)-腾讯云开发者社区-腾讯云
需要注意的是查询日志的地方有所不同,可能有的和我相同
cat /var/log/auth.log
那么在这里再报一种免密登录可能失败的情况,查看日志发现
sshd[30850]: pam_unix(sshd:auth): authentication failure; logname=
前后面部分内容隐去,只列出这种原因,在于哪儿呢?第三步生成公钥和私钥,加密方式的选择有rsa,dsa,ecdsa,之前选择使用dsa,通过修改文件夹权限,修改/etc/ssh/sshd_config都无法解决物体。换成rsa之后,立刻问题解决,也请大家注意。