前言:

linux除了通过密码验证远程连接服务器以外,还可以通过私钥的方式连接服务器,二者相比较,后者更安全,并且可以追根溯源,以下是配置过程

一、首先需要在自己的本地生成ssh-key密钥

1.1生成通过命令生成秘钥,创建文件

  • win+r(windows下)输入cmd,调出终端。

  • 执行命令:

ssh-keygen -m PEM -t rsa -b 4096 -f C:\Users\SC\.ssh\ztest.pem

# C:\Users\SC\.ssh\ztest.pem   该路径是指存放生成文件后的存放路径,可自定义
# ztest.pem 的文件名称可自定义, 必须以.pem 后缀结尾

下面是上图的解释

  1. Enter passphrase (empty for no passphrase):

  1. #密钥密码,输入需记住(安全)。也可不输,直接回撤。

  1. 1 Enter same passphrase again:

  1. #再次输入密码后回撤

1.2命令之后,查看在本地生成的文件

二、将用户下的的.ssh目录中的zyhtest.pem.pub公钥文件上传到服务器,或者也可打开此文件,直接复制内容到服务器上。

2.1服务器中执行命令创建秘钥:

执行命令如下:

ssh-keygen -m PEM -t rsa -b 4096 -f  /root/.ssh/ztest2.pem 

#/root/.ssh/ztest2.pem   表示存放生成文件的存放路径,可自定义路径
#/ztest2.pem     文件名称可以自定义  但必须以 .pem  结尾

2.2 将本地生成的公钥上传到服务器中

2.2.1进入到生成的.ssh 目录下 ,并上传本地证书公钥
cd /root/.ssh   
#该路径就是我们在2.1中 选择存储生成文件的路径下

示例图如下:

1.选择本地需要上传的文件zyhtest.pem.pub

(本地需上传的文件)

2.上传到服务器的位置如下

(上传到服务器的路径)

2.3需将当前上传公钥中的值加入到授权列表(authorized_keys)中

2.3.1如果没有authorized_keys这个文件就创建,命令:

touch authorized_keys

2.3.2 将zyhtest.pem.pub 文件中的内容添加到 新创建的 authorized_keys 文件中

cat zyhtest.pem.pub>>authorized_keys 

#zyhtest.pem.pub  文件名称,根据你们创建时的名称进行修改

zyhtest.pem.pub中的内容也可以直接复制粘贴到authorized_keys 文件中

2.2.3 查看是否添加成功

cat authorized_keys

备注解释:

authorized_keys 中保存的可以有N个,数据来源于不同用户在本地生成的xxx.pem.pub 中的key,同时,也可以将服务器中的生成的xxx.pem.pub的key放到另外一个服务器中的authorized_keys中 这样就可以实现linux服务互相连接了

ztest.pem.pub 中的key可直接复制到authorized_keys 中

三、客户端通过私钥进行远程连接

3.1 新建ssh连接

3.1.1私钥 点击”浏览”,再点击导入

3.1.2浏览选择私钥

3.4 点击保存即可。
3.5 再次双击即可登录成功

四、开启秘钥登录后,就需要关闭密码连接,

操作如下:

4.1编辑sshd_config 配置文件

4.1输入命令:sudo vim /etc/ssh/sshd_config

4.2修改如下,允许秘钥连接,关闭密码登录

PubkeyAuthentication yes #允许秘钥登录

PasswordAuthentication no #不允许密码登录

如果默认被注释,就取消注释即可

4.3最后:wq 保存退出,并重启ssh服务

4. 4重启命令:systemctl restart sshd

五、结束


2.1 步骤,服务器中创建秘钥 这里 为了更加安全起见,可以新建一个普通用户,并切换为普通用户后,再执行2.1的命令即可

Logo

更多推荐