1.生成公钥(Pubic Key)与私钥(Private Key):

Xshell自带有用户密钥生成向导,如下图所示:点击菜单栏的工具->新建用户密钥生成向导 

利用xshell密钥管理服务器远程登录_第1张图片

虽然SSH2协议中RSA和DSA算法都可以使用,但是为了保险起见,我们一般都选择RSA密钥类型,这样不论你使用的SSH协议是SSH1还是SSH2都可以使用;密钥长度1024位即

利用xshell密钥管理服务器远程登录_第2张图片

正在生成密钥,直接下一步即可

利用xshell密钥管理服务器远程登录_第3张图片

密钥名称可以随便填写,不过一般我们最好是默认名称_年月日,这样方便日后管理;一般不需要填写密钥密码,填写的话就是密钥加密码双重验证,更安全。

利用xshell密钥管理服务器远程登录_第4张图片

公钥格式默认的SSH-OpenSSH即可,这里点击保存为文件,选择一个路径

利用xshell密钥管理服务器远程登录_第5张图片

文件名默认即可

利用xshell密钥管理服务器远程登录_第6张图片

此时会弹出用户密钥的一个窗口,Xshell已经自动导入了刚才我生成的私钥,公钥已经被我保存在了桌面上(你刚才选择的文件路径)。

如果没有弹出上面的窗口,可以选择菜单栏的工具->用户密钥管理者,打开用户密钥这个窗口。

利用xshell密钥管理服务器远程登录_第7张图片

选中刚才生成的私钥,点击右侧的导出按钮,如果换电脑或者重装系统了,重新导入私钥即可。

利用xshell密钥管理服务器远程登录_第8张图片

利用xshell密钥管理服务器远程登录_第9张图片

如果你之前填写了密钥管理密码,这里会提示你输入密码。

利用xshell密钥管理服务器远程登录_第10张图片



2.添加公钥(Pubic Key)到远程Linux服务器;

用xftp上传id_rsa_1024_20140305.pub到用户home目录下的.ssh下(如果没有则创建此目录),并命名为:authorized_keys,再修改权限为600.

1
2
3
mkdir  - / root / .ssh 
mv  / root / id_rsa_1024_20140305.pub  / root / .ssh / authorized_keys 
chmod  600  / root / .ssh / authorized_keys



利用xshell密钥管理服务器远程登录_第11张图片wKioL1PDcxuiQ6DmAACr9auFWxo105.jpg


修改sshd_config配置文件

vim /etc/ssh/sshd_config 

1
2
3
4
PubkeyAuthentication yes     #启用公告密钥配对认证方式 
AuthorizedKeysFile .ssh / authorized_keys      #设定PublicKey文件路径
RSAAuthentication yes   #允许RSA密钥
PasswordAuthentication no  #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了

重新加载sshd服务: /etc/init.d/sshd restart 



3.客户端载入私钥(Private Key)登录:

利用xshell密钥管理服务器远程登录_第12张图片

注: 

私钥,在Xshell里也叫用户密钥 

公钥,在Xshell里也叫主机密钥

“所选的用户密钥未在远程主机上注册。请再试一次。”在登陆是xshell报错,检查服务器的selinux及iptables是否开启。