linux服务器设私钥失败 ssh指定私钥登录服务器_密钥对



目录

  • 一、远程服务器生成密钥对
  • 二、私钥下载至本地(连接客户端)
  • 三、远程服务器复制公钥(实现免密)



在我们测试或生产环境中,为了服务器安全性,有时可能需要以 SSH 密钥的方式登录服务器,接下来,将演示如何通过 SSH 私钥的方式来远程服务器。

一、远程服务器生成密钥对

1、首先在目标远程服务器下生成 SSH 密钥对

一路回车即可

[build@k8s-master ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/build/.ssh/id_rsa): 
Created directory '/home/build/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/build/.ssh/id_rsa.
Your public key has been saved in /home/build/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PlPyHlOiZEHn3cAyctH5019FwGNCSdR9dhyR5pj2rAA build@gitlab-1
The key's randomart image is:
+---[RSA 2048]----+
|        . oB==.B=|
|       ..o+.*o=oB|
|        .o.o.+*++|
|         E   +o.o|
|        S + o o.o|
|       + = +   o.|
|        = + . .  |
|         + o .   |
|          .      |
+----[SHA256]-----+

2、此时会生成一对密钥对(公钥和私钥)

私钥:id_rsa

公钥:id_rsa.pub

[build@k8s-master ~]# cd ~/.ssh/
[build@k8s-master .ssh]# ll
total 8
-rw------- 1 build build 1679 Jul 18 15:14 id_rsa
-rw-r--r-- 1 build build  396 Jul 18 15:14 id_rsa.pub

二、私钥下载至本地(连接客户端)

1、下载私钥至连接客户端

当密钥对生成完毕后,将私钥(id_rsa)下载至连接客户端本地,比如,我就下载到我的 Windows 本地,然后通过 Xshell 客户端工具 ssh 远程连接目标服务器。

linux服务器设私钥失败 ssh指定私钥登录服务器_ssh_02

2、Xshell 配置连接

  • 连接
  • 用户身份验证,最后点击“连接”
  • 选择“浏览”选项下的“文件”,并选择我们刚刚从目标服务器下载的私钥文件
  • 最后点击“确定”

但此时你会发现还需要输入 root 用户密码。这不是我们所需要的,我们需要的是直接免密登录,否则就没什么意义了。

三、远程服务器复制公钥(实现免密)

根据上图的错误,于是我们还需要配置免密登录,很简单,两种方法。

  • 如果是目标服务器上本身生成的密钥对,就在 ~/.ssh/ 目录下新建一个名为 authorized_keys 的文件(如果不存在的话),并将自己的公钥复制粘贴到该文件中。
  • 如果 ssh 密钥对不是在目标服务器直接生成的,需要将密钥对复制到目标服务器,并生成对应的 authorized_keys 文件。

说说 authorized_keys文件,该文件是实现免密登录的文件,我们使用的 ssh-copy-id <192.168.56.133> 其实就是将自己的公钥分发到 133 目标服务器上实现免密登录的。

也就是说我的远程目标服务器至少需要包含以下三个文件,才能实现以私钥的方式实现免密登录。

[root@gitlab-1 .ssh]# ll
total 12
-rw------- 1 root root  395 Jul 18 15:50 authorized_keys
-rw------- 1 root root 1675 Jul 15 17:03 id_rsa
-rw-r--r-- 1 root root  395 Jul 15 17:03 id_rsa.pub

# 说明
# .ssh目录的权限必须为700(如果你自建的话需修改为700)
# id_rsa、authorized_keys文件的权限必须为600,否则连接时还是会提示需要登录密码
# id_rsa.pub 为正常的644权限

如下图,已经可以正常登录。

linux服务器设私钥失败 ssh指定私钥登录服务器_ssh_03