• 中文
    • English
  • 注册
  • 查看作者
  • 如何将服务器SSH验证方式修改为数字证书登录

    一. 前言

    最近登上公司的宝塔账号,发现被暴力破解了1万多次,如下图

    如何将服务器SSH验证方式修改为数字证书登录

    其实一般这种的问题不用处理,基本上都是不法分子批量扫描22端口暴力破解导致的,除非你密码特别简单,一般不会有什么问题,但是既然宝塔官方给了解决方案,那么就处理一下吧。

    宝塔一共给出了两个解决方案,修改SSH默认端口和开启数字证书登录,我们一步步来。

    二. 修改SSH默认端口

    SSH端口默认是22 , 我们将其修改为2020,步骤如下:

    1. 宝塔中更改SSH默认端口

    进入宝塔面板 -> 安全 -> 开启SSH -> 输入端口号 -> 更改

    如何将服务器SSH验证方式修改为数字证书登录

    更改完成后我们ping一下2020端口 , 可以发现 , 虽然我们在宝塔中放行了2020端口,依旧是 ping 不通 , 这是因为服务器的安全组中还没有对2020端口放行

    如何将服务器SSH验证方式修改为数字证书登录

    ( ps:这里用到了tcping小工具  , 因为在cmd中没法直接使用ping命令去ping ip+端口号 。tcping可以去官网下载  , 下载后在下载目录打开cmd即可使用 , 如果想在任意目录使用 , 请添加到环境变量中,这里不再赘述)

    2. 服务器中放行2020端口

    接下来在服务器安全组中将该端口放行 , 这里以阿里云为例 , 首先打开安全组配置

    如何将服务器SSH验证方式修改为数字证书登录

    接下来点击添加配置规则

    如何将服务器SSH验证方式修改为数字证书登录

    点击右上角的添加安全组规则

    如何将服务器SSH验证方式修改为数字证书登录

    输入2020端口 和 授权对象 后点击确定

    如何将服务器SSH验证方式修改为数字证书登录

    此事再次ping一下2020端口 , 可以发现已经ping通

    如何将服务器SSH验证方式修改为数字证书登录

    为了保险起见 , 可以在宝塔 -> 安全 中将22端口删除

    三. 修改SSH验证方式为数字证书

    1.  下载Xshell

    我们可以使用Xshell来生成数字证书  , 没有Xshell的同学可以参考本站《关于Xshell和Xftp过期的解决办法》一文免费下载。

    下载安装后打开Xshell,用我们刚修改的2020端口登录ssh,后面会用到

    2. 生成数字证书

    在Xshell中,点击工具 -> 新建用户密钥生成向导

    如何将服务器SSH验证方式修改为数字证书登录

    选择密钥类型和长度,点击下一步

    如何将服务器SSH验证方式修改为数字证书登录

    继续点击下一步

    如何将服务器SSH验证方式修改为数字证书登录

    输入密钥名称和密钥密码 ,点击下一步 (这个密码就是你以后登录SSH的密码 , 一定要记好 )

    如何将服务器SSH验证方式修改为数字证书登录

    将密钥保存为文件后点击完成 (注意,这个密钥文件一定要保存好,不法分子就算知道了你上一步设置的密码,但是没有你的密钥文件,照样无法登录你的服务器,如果这一步忘记保存密钥,可以手动导出,下面有介绍)

    如何将服务器SSH验证方式修改为数字证书登录

    3.  上传证书

    将上一步我们导出的密钥上传到服务器/root/.ssh目录,并将其重命名为authorized_keys

    如何将服务器SSH验证方式修改为数字证书登录

    也可以直接使用命令来完成上述操作

    mkdir -p /root/.ssh && chmod 600 /root/.ssh && echo 上一步导出的密钥文件中的内容 > 
    /root/.ssh/authorized_keys && chmod 700 /root/.ssh/authorized_keys

    4.  修改配置

    打开服务器/etc/ssh/目录下的sshd_config(注意,不是ssh_config),修改以下内容

    修改端口号:

    如何将服务器SSH验证方式修改为数字证书登录

    关联证书

    如何将服务器SSH验证方式修改为数字证书登录

    关闭密码登录(注意,这里关闭是ssh的密码,并不是我们之前设置的密钥密码)

    如何将服务器SSH验证方式修改为数字证书登录

    到这里已经全部修改完成了,打开第一步我们登录的SSH窗口,输入service sshd restart命令重启ssh服务即可

    5. 使用证书登录ssh

    此时我们在xshell中重新登录我们的服务器,会发现之前的Password框已经变灰不能输入,说明我们的配置已经生效,此时想登录服务器需要我们先选择对应的密钥,再输入我们之前设置的密钥密码才可以

    如何将服务器SSH验证方式修改为数字证书登录

    6.  导出密钥

    如果此时公司的其他运维人员也想登录ssh,我们将第2步导出的密钥文件发送给对方,并告知密钥密码即可,如果密钥文件丢失,可以在Xshell中点击工具 -> 用户密钥管理者 -> 选择对应密钥 -> 导出即可

    如何将服务器SSH验证方式修改为数字证书登录

    参考资料

    一键搞好SSH Key证书

  • 0
  • 0
  • 0
  • 3.3k
  • success。MI

    请登录之后再进行评论

    登录
    单栏布局 侧栏位置: