前言:
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 后缀结尾
下面是上图的解释
Enter passphrase (empty for no passphrase):
#密钥密码,输入需记住(安全)。也可不输,直接回撤。
1 Enter same passphrase again:
#再次输入密码后回撤
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的命令即可
来源地址:https://blog.csdn.net/weixin_55944621/article/details/128969479