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

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_02

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_03

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_04

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_05

文件名默认即可

利用xshell密钥管理服务器远程登录_xshell密钥登陆_06

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

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_07

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_08

利用xshell密钥管理服务器远程登录_xshell密钥登陆_09

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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_10



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

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

mkdir -p /root/.ssh 
mv /root/id_rsa_1024_20140305.pub /root/.ssh/authorized_keys 
chmod 600 /root/.ssh/authorized_keys



利用xshell密钥管理服务器远程登录_xshell密钥登陆_11利用xshell密钥管理服务器远程登录_xshell密钥登陆_12


修改sshd_config配置文件

vim /etc/ssh/sshd_config 

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

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



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

利用xshell密钥管理服务器远程登录_xshell密钥登陆_13

注: 

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

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

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