• 中文
    • English
  • 注册
  • BBS
  • 今日 0
  • 帖子
  • 关注
  • 赞助本站

    • 支付宝
    • 微信
    • QQ

    感谢一直支持本站的所有人!

    • 查看作者
    • 如何将服务器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证书

    • 2
    • 0
    • 0
    • 698
    • success。MI

      请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 返回顶部
    • 单栏布局 侧栏位置: