Linux-SSH之免密码登陆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-SSH之免密码登陆相关的知识,希望对你有一定的参考价值。
原理
在传统的SSH身份认证过程中,服务端(被动连接端)通过校验客户端(主动连接端)发送的用户名和密码来实现用户身份的验证。服务端除了用户名和密码的验证方式外,还可以通过保存并使用客户端的公钥(可以理解为PKI体系中的公钥)来验证客户端的身份。
know_hosts:存储已知服务器的公钥信息。
authorized_keys:存储已知客户端的公钥信息。
id_rsa.pub:存储公钥信息。
id_rsa:存储私钥信息。
其中:
- .ssh目录的权限必须是700。
- .ssh/authorized_keys文件权限必须是600。
验证过程:
- 在客户端登陆前,客户端将公钥放在待登陆的服务器上。
- 客户端向服务器端发送公钥信息,申请以指定用户身份验证。
- 服务器端寻找对应用户家目录家目录下寻找公钥。
- 服务器端使用找到的公钥加密数据并发送给客户端。
- 客户端使用自己的私钥解密,而后将其发送给服务器端。
- 服务器端验证前后消息是否一致,以便确认用户身份。
环境
- CentOS7_x86_64
- Windows10
- XShell
- OpenSSH
步骤
1.生成非对称密钥对。
1 #生成SSH使用的公钥和私钥只用户家目录下的.ssh目录下 2 ssh-keygen -t rsa
2.创建authorized_keys文件。
1 #创建.authorized_keys文件 2 touch authorized_keys 3 #修改文件权限信息 4 chmod 600 authorized_keys
3.将客户端的公钥信息追加到服务器端的authorized_keys文件中。
1 #拷贝公钥信息至authorized_keys文件 2 ssh-copy-id -i ~/.ssh/id_rsa.pub 3 4 scp -p ~/.ssh/id_rsa.pub [email protected]<remote_ip>:/root/.ssh/authorized_keys 5 6 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
以上是关于Linux-SSH之免密码登陆的主要内容,如果未能解决你的问题,请参考以下文章