ssh利用口令建立连接过程: 客户端--> 发送连接请求 --> 远程主机 --> 返回远程主机的公钥 --> 公钥加密客户端私钥+客户端公钥返回远程主机 --> 远程主机解密登陆密码(公钥),正确则允许登录 ***这里会出现的问题是: 假如黑客从中间截取连接请求,伪装真实的远程主机发送公钥给客户端,这样就会获得机器的真实密码,然后进行登录破坏。 ssh利用公钥私钥进行连接过程: 客户端 --> 发送连接请求 --> 远程主机 --> 返回随机字符串 --> 用私钥加密随机字符串返回 --> 公钥解密,如果正确则允许登录
1. 利用ssh-keygen生成一对密钥
一路回车,可以不对密钥设置口令(担心安全),可以设置一个
运行结束后,会在$HOME/.ssh/下生成一对密钥
[root@frankie .ssh]# ls id_rsa id_rsa.pub known_hosts
2. 将公钥传到远程主机host上(这里需要远程主机的密码)
[root@frankie .ssh]# ssh-copy-id root@192.168.70.131
3. 测试是否可以进行登录(无密码登录)
[root@frankie .ssh]# ssh 192.168.70.131
4. 出现错误
1) 如果还是不能无密码登录
[root@frankie .ssh]# vim /etc/ssh/sshd_config #去掉前面的注释 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
#重启ssh服务 [root@frankie .ssh]# service sshd restart