Linux ssh 免密登录并非真的不需要密码,而是生成密钥对来代替手动输入密码
具体过程:
1. 在客户机(client) 使用ssh-keygen命令
# cd ~/.ssh
# ssh-keygen -t rsa -C "your_email_address"
命令之后全部回车,不需要输入其他的文本
最后回车后,会在~/.ssh文件加中生成id_rsa 和id_rsa.pub 密钥对,id_rsa 是私钥,需要自己保存,不能让外面的人知道,id_rsa.pub 是公钥,可以发给远程登录服务器
2. 如果你使用了xshell分别登录了客户机(client)和服务器(server),那么你可以方便的将客户机(client)上生成的id_rsa.pub的内容复制到authorized_keys。
另外一种方法在客户机(client)端使用scp 命令:
# scp id_rsa.pub root@remote_server_ip:/tmp
在服务器(server)端使用cat 将id_rsa.pub的内容粘贴到authorized_keys 即可
# cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
这个时候需要注意一下,如果将id_rsa.pub的内容粘贴到了root权限下的~/.ssh/authorized_keys, 那么你在客户机(client)使用ssh发起连接的时候, 需要使用root的远程用户名
# ssh -f -N -R 10000:localhost:22 root@remote_i