一、在服务端生成密钥
1. 输入ssh-keygen
2. 会提示key要保存的位置,直接回车默认即可
Enter file in which to save the key (/root/.ssh/id_rsa):
3. 输入生成key的密码,这个一定要保存好。需要输入两次。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
4. 如(图一) 出现RSA 2048的图案即生成成功。
5. 将生成的 id_ras 下载到你自己电脑上。 sz id_rsa
6. 修改sshd的配置文件 /etc/ssh/sshd_config :
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
找到以上三项,把前面的注释去掉。
7. 在.ssh目录下执行 cat id_rsa.pub >> authorized_keys 将公钥写到指定的文件里面
8. ssh 禁用密码登录 修改 /etc/ssh/sshd_config
PasswordAuthentication yes
改为:
PasswordAuthentication no
9 重启 ssh服务
注意:未确认是否连接成功的时候不要退出原来的远程管理。否则出错了你就连不上去了。
二、使用Xshell 7连接
1. 新建一个会话,然后右键选择属性
2. 点击Public Key右边的设置:
3. 点击浏览,导入从服务器上下载的 id_rsa
4. 输入第二步提示处的密码,该密码是你在服务器上生成密钥时输入的密码。
5. 点击确定就可以登录成功了。
我遇到的问题:
e1. 如果一直提示让你输入密码有可能是你没有在服务端执行第7步。
e2. 如果你没有使用密钥登录成功,不要退出你原来的远程连接。否则你只能去机房登录修改配置。
如果你是centos 7.x有可能在sshd_config里没有 RSAAuthentication yes,使用后两项也可以