SSH登录流程及配置公钥登录

一、第一次登录远程主机流程

第一次ssh到远程主机时远程主机会发送它的公钥到客户端主机,客户机确认继续连接后会把远程主机的公钥保存到.ssh/known_hosts文件,下次再连接此远程主机时会去.ssh/known_hosts查看,如果是已经保存的公钥证明是信任主机,即不会告警并直接提示输入用户名密码登录

二、密码登录流程

远程主机收到客户端请求后会把自己的公钥发送给客户端,客户端通过公钥加密之后将密码发送给远程主机,远程主机用密钥解密,密码如果正确则登录成功

三、公钥登录(免密登录)流程

公钥登录原理就是客户端将自己的公钥存储到远程主机的.ssh/authorized_keys中,客户端发起登录时,远程主机会发送一段随机字符串给客户端,客户端用自己的私钥加密后重新发回远程主机,远程主机用存储的客户端公钥解密之后对比之前发送给客户端的字符串,相同的话即认为客户机认证,不在需要输入密码直接登录系统。

四、公钥登录配置

1、远程主机ssh配置

vi /etc/ssh/sshd_config

RSAAuthentication yes #启用RSA认证

PubkeyAuthentication yes #启用公钥认证

AuthorizedKeysFile .ssh/authorized_keys #公钥认证文件

2、在客户端生成公私钥文件

ssh-keygen -t rsa

一路回车之后在$HOME/.ssh/下就可以看到两个文件

-rw-------. 1 root root 1675 Oct 25 12:04 id_rsa #私钥

-rw-r--r--. 1 root root 391 Oct 25 12:04 id_rsa.pub #公钥

3、将客户端公钥追加到远程主机 .ssh/authorized_keys中

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

.ssh目录的权限必须是700 

.ssh/authorized_keys文件权限必须是600

如果配置完成还是无法免密登录,检查权限,属组是否正确,被坑了几次了,切记~

猜你喜欢

转载自blog.csdn.net/qq_16583855/article/details/121272904