密钥对基础介绍
Linux
公钥/root/.ssh/id_rsa.pub
私钥/root/.ssh/id_rsa
windows
公钥C:\Users\用户名\.ssh\id_rsa.pub
私钥C:\Users\用户名\.ssh\id_rsa
使用ssh命令会自动携带私钥,而使用ssh工具(如finalshell)需要手动选择私钥位置
免密登录基本流程是客户端使用ssh-keygen生成公私钥对,然后把客户端生成的公钥追加到需要登录的主机的/root/.ssh/authorized_keys文件中,登陆时目标主机使用公钥加密,客户端使用私钥解密,所以要保证登录的目标主机使用的公钥和客户端的私钥是配对使用的
环境说明:有两台主机,IP分别为192.168.220.3(账号为root,密码123456)和192.168.220.5(账号为root,密码为000000)
禁用密码登陆(可选)
nano /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd
如果要启用密码认证,则PasswordAuthentication yes 如果禁用密码认证之后,SSH私钥丢失无法登录,可以重置云主机实例密码,PasswordAuthentication会自动变成yes。
一.实现192.168.220.5免密登录自身
1.ssh工具登录192.168.220.5主机
2.生成公钥文件,输入命令,连按两次回车即可,默认生成在~/.ssh 目录下,
ssh-keygen
3.拷贝刚刚生成的公钥文件复制到192.168.220.5的文件
下面的命令本质是在/root/.ssh/authorized_keys文件里追加刚刚生成的公钥,可以手动复制。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.220.5
4.在192.168.220.5执行以下命令测试
说明:如果192.168.220.5sshd服务没有启用公钥认证(默认启用,除非自己改过),您需要在该主机上编辑/etc/ssh/sshd_config文件,将PubkeyAuthentication设置为yes 并重新启动sshd服务(systemctl restart sshd)。
二.实现192.168.220.5免密登录192.168.220.3
1.登录192.168.220.5主机
2.如果192.168.220.5没有生成过公钥则执行(已经生成过无需重复生成)
ssh-keygen
3.在192.168.220.3执行以下命令,把公钥拷贝到192.168.220.5,按要求输入192.168.220.5主机密码完成拷贝
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.220.5
4.在192.168.220.3执行以下命令测试
ssh root@192.168.220.5
说明:如果192.168.220.5的sshd服务没有启用公钥认证(默认启用,除非自己改过),您需要在该主机上编辑/etc/ssh/sshd_config文件,将PubkeyAuthentication设置为yes 并重新启动sshd服务(systemctl restart sshd)。