0
点赞
收藏
分享

微信扫一扫

CentOS 7 远程使用证书登录

晴儿成长记 2024-01-12 阅读 10

一、证书登录步骤

  1. 客户端生成证书:私钥和公钥,然后私钥放在客户端妥当保管,一般为了安全,客户端在生成私钥时,需要设置一个密码,其他人就算拿到私钥,没有密码也是无法解开的。
  2. 服务器中添加信任公钥:把客户端生成的公钥,上传到服务器,添加到指定的文件中,修改sshd配置,重启sshd服务。
  3. 假设客户端想通过私钥登录其他服务器,同理需要上传公钥到服务器,可以使用同一个公钥私钥对,也可以重新生成一对服务器如果要配置多个客户端证书登录,把需要登录的客户端公钥添加到指定的文件中。
  4. 真实工作中,员工生成好密钥对,公钥发送给运维人员,开通一台或多台服务器的权限,员工有责任保护好私钥,为了防止恶意拷贝,最好设置密码,但我从没设过密码,所以接下来的配置演示也没设置密码。

二、准备工作

2.1、生成用于SSH的公钥和私钥

2.1.1、使用centos系统命令ssh-keygen

# 本例用户为alias
[alias@localhost ~]$  ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/alias/.ssh/id_rsa): 回车
Created directory '/home/alias/.ssh'.
Enter passphrase (empty for no passphrase): 回车
Enter same passphrase again: 回车
Your identification has been saved in /home/alias/.ssh/id_rsa.
Your public key has been saved in /home/alias/.ssh/id_rsa.pub.
The key fingerprint is: 回车
SHA256:aVJ7gDVQ75CSGSVa+Y4UCl6dvHWxbrRFjr1Bq9+wUt8 alias@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|     o=*= ..o    |
|  . .o*B.+.B .   |
| . o..===.= *    |
|  . . oo.O + o   |
|     ..oS B +    |
|      .o.o o = . |
|          . o o E|
|           .     |
|                 |
+----[SHA256]-----+
# 会提示输入:密钥存放位置(直接回车,默认在/home/alias/.ssh/目录)、密码短语、重复密码短语,我这里全回车,没有设置密码。
# 完成后在/home/alias/.ssh/目录下生成了2个文件:id_rsa为私钥,id_rsa.pub为公钥。
[alias@localhost ~]$ ls .ssh/
id_rsa  id_rsa.pub

2.1.2、使用Secure CRT生成

  1. 主菜单->工具->创建公钥->选择RSA->填写密码->密钥长度1024->选择格式为OpenSSH及保存路径。【基本上全部点下一页至完成】
  2. 生产2个文件,默认名为Identity和Identity.pub
  3. Identity为私钥,Identity.pub为公钥

2.2、导入公钥

[alias@localhost ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

注意事项:

  1. SecureCRT生成的公钥文件上传到服务器后,再导入
  2. 多个公钥追加到authorized_keys文件中
  3. ssh使用哪个账户登录,就把公钥上传到对应账号的home目录下的~

2.3、检查正确的文件和文件夹权限

# 一般默认权限就是以下,其实不用更改
[alias@localhost ~]$ chown -R 0700  ~/.ssh
[alias@localhost ~]$ chown -R 0644  ~/.ssh/authorized_keys
[alias@localhost ~]$ chown -R alias:alias /home/alias
# 开启SELinux时,还需要执行(root用户把/home改成/root)
[alias@localhost ~]$ restorecon -R -v /home

2.4、修改SSH配置文件,支持使用证书登录(root权限)

vim /etc/ssh/sshd_config
# 以下几个重要修改
PermitRootLogin no            # 关闭root用户登录(可选)
StrictModes no                # 是否让sshd去检查权限
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no     # 有了证书登录,就禁用密码登录(可选)

2.5、重启服务

systemctl restart sshd.service

三、证书登录

#下载id_ras到本地

3.1、配置SecureCRT使用证书登录

CentOS 7 远程使用证书登录_证书登录

3.2、配置Putty使用证书登录

3.2.1、使用Putty密钥生成器转换私钥格式

  1. 点击File – Load private key(All Files .),导入id_rsa文件;
  2. 点击Save private key按钮,命名并生成ppk文件,比如alias.ppk。
  3. 这个ppk文件就是用于Putty的私钥。

CentOS 7 远程使用证书登录_证书登录_02

3.2.2、设置Putty使用证书登录

  1. Putty→Session:输入Host Name 或者 IP Address;
  2. Putty→Connection→Data:输入Auto-login username(自动登陆用户名);
  3. Putty→Connection→SSH→Auth:在Private key file for authentication选择私钥文件;
  4. Putty→Session:Saved Session:输入某个名称保存,以后直接双击该名称就可登录。

也可以用带参数的快捷方式执行证书登录,比如:D:\Tool\Putty-0.77-cn-portable-win-20220911>putty -i "d:\alias.ppk" alias@192.168.88.145

CentOS 7 远程使用证书登录_证书登录_03

3.3、配置Centos7客户端使用证书登录

  1. 上传私钥到Centos7客户端 ~/.ssh/目录下
  2. 默认权限0644对于文件~/.ssh/id_rsa太开放了,不会让你登录
  3. 修改权限 chmod 600 ~/.ssh/id_rsa

CentOS 7 远程使用证书登录_证书登录_04


举报

相关推荐

0 条评论