Xshell配置ssh免密码登录-密钥公钥(Public key)

Posted 山河永慕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xshell配置ssh免密码登录-密钥公钥(Public key)相关的知识,希望对你有一定的参考价值。

1 简介

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。

使用密钥登录分为3步:

1、生成密钥(公钥与私钥);

2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;

3、配置ssh客户端使用密钥登录。

1.1 生成密钥(公钥与私钥)

打开Xshell,在菜单栏点击“工具”,在弹出的菜单中选择“(新建用户密钥生成向导)”,如下图:

 

弹出“新建用户秘钥生成向导”对话框,在“秘钥类型”项选择“RSA”公钥加密算法,“秘钥长度”选择任意密钥长度,长度越长,安全性越高,如下图:

 

点击“下一步”,等待密钥生成

 

 

继续下一步,在“秘钥名称”中输入Key的文件名称,我这里为“id_rsa_2048(2)”;在“加密密码”处输入一个密码用于加密私钥,并再次输入密码确认,如下图:

 

 

点击“下一步”,密钥生成完毕(Public key Format选择SSH2-OpenSSH格式),这里显示的是公钥,我们可以复制公钥然后再保存,也可以直接保存公钥到文件,如下图。

点击“保存为文件”按钮,将公钥(Public key)保存到磁盘,文件名为“laomao”,备用。最后点击“完成即可

公钥保存完后,接下来为私钥文件点击导出导出为私钥文件,用来打开刚才的公钥。请妥善保管。

 

 

 

点击保存,会弹出一个框,输入刚才设置的密码123456.在点击“确定即可

 

1.2 放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中

上面的步骤只是生了公钥和私钥过程,接下来就是要将刚才生成的公钥放到要管理的服务器上。

使用到Xshell登录到服务器,进入到“/root/.ssh/”目录,运行rz命令(如果没有rz命令,运行yum install lrzsz安装),将key.pub发送到服务器,

 

 

然后运行如下命令,将公钥(Public Key)导入到“authorized_keys”文件:

[root@mysql-db01 ~]# cd .ssh/
[root@mysql-db01 .ssh]# ls
authorized_keys  known_hosts
[root@mysql-db01 .ssh]# rz -E
rz waiting to receive.
[root@mysql-db01 .ssh]# ls
authorized_keys  known_hosts  laomao.pub
[root@mysql-db01 .ssh]# cp authorized_keys authorized_keys.bak
[root@mysql-db01 .ssh]# cat laomao.pub >authorized_keys
[root@mysql-db01 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAYEAybjy7/DVWxXm4lcXFA+x0bgBMi+aQ6zIzyBfFSKJEMhAhs/MxbKHOl1c1GwzPSAKLAHoR8UZSQO7QQcYKqeb8cNWR8f9NGNBCJs+e6Fpl7BvNPKfNrixnq+gT5VIz77u2RXU74JBOuwsgaEHtCU5DQhIfvAoUe64qCBuY5J6JHJV3bBlMXnqxrJQO4+4hH0dHyVzc5wmP0ngnah/6za64hk3Nd1tdER7na701geZTR5N4OqeCep+TtPcbT4RKQ1qJ5L67ET5x3uYGEKZDK4tOL2kluePd2XHRQg1qcXl87f7HkZiLIicgLU8/rB+LyUOJzywTVHvmTWTPDS1u6RmAQSLh/4VU0vEks7bIj7xTCaKjuO6UgHvxPZL1BQWj8tY6fzerdndVM5bORkAHgZ67ZJK6X+Zui4fHTkxSQ/gvzOgBylhSL3Tyc1PRlVO8L7bl9r36x7hlACHr0BrqpenrkxdMmrR4i4RoOrYaijXoPhvg5uWH+rSeUbZDDEw7S/F[root@mysql-db01 .ssh]#
 [root@m01 .ssh]# chmod 600 authorized_keys
[root@m01 .ssh]#

 

 

1.3 配置ssh客户端使用密钥登录

打开Xshell,点击“新建”按钮,弹出“New Session Properties”对话框,在“连接”栏目中,输入刚刚配置好公钥(Public Key)的IP地址和端口,如下图所示:

用户身份认证窗口输入认证方法为“public key”

 

用户秘钥出选择刚生成的私钥文件,并在下面的密码框中输入刚才设置的密码123456(可以和系统登陆密码不一样

  

 

现在就可以使用公钥登陆了,浏览选择用户秘钥位置,然后输入上面刚刚设置的密码“123456”点击“确定,即可登陆。

  

经过了上面的ssh秘钥配置后,我们就可以通过在Publish over SSH插件中使用秘钥来管理服务器了。注意,服务器上存放的是上面生成的公钥,Jenkins上存放的是生成的私钥文件

 

至此你的linux服务器已经支持使用SSH私钥证书登录。在你使用SSH Key登录验证成功后,还是为了安全,建议你关闭root用户使用密码登陆,关闭的方法如下:

修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:

PasswordAuthentication yes

修改为:

PasswordAuthentication no

保存后重启SSH服务。

service sshd restart

好了,至此只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登陆来说已经安全多了。

以上是关于Xshell配置ssh免密码登录-密钥公钥(Public key)的主要内容,如果未能解决你的问题,请参考以下文章

Linux生成ssh公钥免密码登录远程主机和Xshell跨跳板机登录

Xshell5配置ssh免密码登录-公钥与私钥登录linux服务器(xshell如何登陆上阿里云服务器)

利用Xshell配置ssh免密码登录虚拟机,进行虚拟机与物理机的传输

配置SSH免密钥登录

ssh配置无密码登录,免密钥登录

CentOS7 配置密钥免密码登录