前言

  一般一台服务器的SSH权限,是会被适当的做限制的,因为一台服务器需要被多人管理并使用,root用户的密码是不会告诉每个使用者的,因为这样很容易造成密码泄露引起的服务器安全问题,那么使用公私钥配对登录就是最常用的方法了,除了能够保护root密码以外,也还有其他的好处,例如在scp或者rsync下的key的免密转发等,那么下面我们就来配置吧。

开始

使用 ssh-keygen 生成私钥和公钥

  • 先用root用户密码登录服务器,然后输入以下命令:

    ssh-keygen -t rsa

    命令输入按回车键后出现的所有选项,可以使用默认配置,一直按回车键即可。

    ssh-keygen

修改SSH主配置文件(选做)

  • 该步骤可做可不做,主要目的是为了取消root用户的密码认证功能,让SSH登录只能够使用公私钥配对来实现远程登录管理。
    输入以下命令:

    vim /etc/ssh/sshd_config
    # 没有装vim的请把vim改成vi

    ssh-keygen1
    找到 PasswordAuthentication yes 然后把 yes 修改为 no,然后按下 esc 键,再按英文 : ,输入 wq 保存退出。

    ssh-keygen2

生成公私钥(以终端软件 SecureCRT 8.3 为例)

  1. 打开终端软件SecureCRT,然后:1、点击 Tools ,2、点击 Create Public Key...

    ssh-keygen3

  2. 出现弹窗直接点击 下一步 ,然后看到下图界面,在 PassphraseConfirm Passphrase 输入相同的密码(该步骤可选择不填密码为空,但不建议),Comment 处填写注释,可不填,接着点击 下一步Key length in bits: 默认选择 2048 即可。

    ssh-keygen4

  3. 出现下图界面,选择 OpenSSH Key format(new) 这种密钥格式,Pribate key filename 是选择密钥的名称以及存放位置,例如我选择 默认名称 和存放在 D盘,最后点击完成即可在 D盘 找到两个密钥文件,保存时点击询问是否用作默认密钥点击 Yes 即可。

    ssh-keygen5

    ssh-keygen6

将公钥导入服务器

  1. 导入公钥文件,实际是为了把公钥文件内容写进服务器中的 /root/.ssh/authorized_keys 文件里面,方法有很多种,为了方便,我这边选择直接把公钥文件放进服务器,然后用 cat 命令追加写入 authorized_keys 文件内,root账号密码登录服务器,输入命令如下:

    rz
    # 上传命令,如果显示无此命令则需要安装lrzsz包

    输入 rz 命令后弹出下图界面,然后找到公钥文件所在的目录,选择公钥文件,然后点击 Add ,最后点击 OK 即可。

    ssh-keygen7

    此时在输入 ll 命令即可看到公钥文件已经上传到服务器(例如我上传到了 .ssh 文件夹)

    ssh-keygen8

  2. 把公钥文件内容写进 authorized_keys 文件内
    上图可以看到 .ssh 文件夹内没有 authorized_keys 文件,所以需要先创建,输入如下命令:

    cat Identity.pub
    # 打印Identity.pub文件内容
    touch authorized_keys
    # 当前目录(.ssh)创建authorized_keys文件
    cat Identity.pub >> authorized_keys
    # 把Identity.pub文件内容写入 authorized_keys文件内
    # 因为两个文件都在 .ssh 文件夹N内,如果不在的话要输入绝对路径,例如cat /root/Identity.pub(authorized_keys文件必须放在 .ssh 目录内)
    cat authorized_keys
    # 打印authorized_keys文件内容,查看是否写入成功

    ssh-keygen9

重启SSH服务

  • 在服务器终端输入如下命令:
    systemctl restart sshd.service

    验证是否使用公私钥配对登录

  1. 在终端软件 SecureCRT 找到服务器,1、右键选择 Properties ,2、点击 SSH2 ,3、找到 Authentication ,只勾选 PublicKey ,然后点击 OK 即可。

    ssh-keygen10
    ssh-keygen11

  2. 双击服务器连接并登录,出现图2内容则代表公私钥配对登录成功。

    ssh-keygen12
    ssh-keygen13

补充说明

  • 如出现没有配对密钥的情况,请添加密钥
    1、点击 Tools ,2、选择 Manage Agent Keys ,3、出现图2弹窗,点击 Add.. ,4、找到存放密钥的文件夹,选择没有后缀的密钥文件,5、点击 Open ,然后之前配置好的密钥密码,再点击 OK ,就可以看见密钥添加成功。

    ssh-keygen14
    ssh-keygen15
    ssh-keygen16
    ssh-keygen17

最后

  • 本次教程到这里就结束了,本次教程属于运维常规手段,操作不难,主要是给初学者观看,希望对看到本篇博文的朋友有用。
  • 最后说一声,再见👋。

如有问题请点击邮件或在底下评论与我联系