本实例以普通用户zhangsan远程连接Linux服务器为例。
一、生成密钥对
在Linux服务器上为普通用户zhangsan远程连接服务器制作密钥对,执行命令如下:
[root@Server ~]# su - zhangsan #切换到zhangsan身份登录
[zhangsan@Server ~]$ ssh-keygen #生成密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): #输入密码,默认为空
Enter same passphrase again: #确认密码
Your identification has been saved in /home/zhangsan/.ssh/id_rsa #私钥文件
Your public key has been saved in /home/zhangsan/.ssh/id_rsa.pub #公钥文件
The key fingerprint is:
SHA256:JSrgdLX77zo/bl24uvBlgzPRoZ6H44TFemV9qDiZm5k zhangsan@Client.xgk.ptu
The key's randomart image is:
+--------[RSA 3072]-------+
| ...o. |
| . .+.. . |
| o o.B... . |
| *.oO.*... |
| + *+ S. .. |
| . E+ =.. |
| oo* ..+ |
| +o+.+.+ |
| .o .++ . |
+-------[SHA256]-- ------+
二、在服务器上安装公钥
以root身份登录服务器,执行以下命令,将上面生成的公钥信息追加到文件authorized_keys中
[root@Server ~]# cd /home/zhangsan/.ssh
[root@Server .ssh]# cat id_rsa.pub >> authorized_keys
三、设置 SSH,允许密钥验证
以root身份登录服务器,编辑 /etc/ssh/sshd_config 文件,确保“PubkeyAuthentication”前面的注释符号#已删除,且值设置为yes,其它默认不用改动,如下所示。
[root@server ~]# vim /etc/ssh/sshd_config ……此处省略文件原有部分内容……
PubkeyAuthentication yes
最后,重启 SSH 服务,使修改配置生效,命令如下
[root@Server ~]# systemctl restart sshd
四、下载私钥文件
将在第一步中生成的私钥文件(/home/zhangsan/.ssh/id_rsa)下载到Windows主机中,操作步骤如下:
首先通过SecureCRT客户端以root或者zhangsan身份登录服务器,如下图所示。
然后依次打开SecureCRT的菜单File-->Connect SFTP Session,如下图所示。
打开如下图所示的SFTP连接。
在SFTP窗口中,依次执行以下命令,将私钥文件(/home/zhangsan/.ssh/id_rsa)下载到Windows的某个目录,比如D盘根目录。
lcd d:/
cd /home/zhangsan/.ssh
get id_rsa
成功执行上述命令后,检查Windows主机的D盘根目录,确保存在id_rsa文件。
五、配置密钥登录
在SecureCRT客户端,新建一个连接,或者修改现有连接属性(Properties),如下图所示。
打开如下图所示对话框,依次输入Hostname、Username、勾选认证方式为PublicKey、单击“Properties…”按钮,在打开的对话框中,选择上一步下载的id_rsa私钥文件,最后一路单击“OK”按钮直接关闭所有对话框。
六、测试验证
直接双击SecureCRT左侧的连接,如若免密连接成功,则配置OK。