SSH登录方式及如何防止SSH端口被扫

ssh登录服务器的方式有三种:密码登录,公钥登录,证书登录。同时,密码登录有被破解的风险,网络上也有很多在扫描ssh端口的主机。
比如:
image-20220222112150627
这里175.178.62.36是一个来自广东的服务器,17次尝试密码登录我的服务器,好在都失败了。
针对这种行为我们可以使用公钥登录的方式保护服务器。

密码登录

这是最基本的一种登录方式,当我们使用 ssh 用户名@ip时,命令会引导我们正确输入密码并且登录服务器。

image-20220222111955941

输入密码之后就能登录到linux服务器了。

但是这种方式存在被暴力破解的风险

公钥登录

这是比较安全的一种登录方式,就是在自己的电脑上生成秘钥,然后将公钥的内容复制到服务器的authorized_keys里,就可以不用再输入密码登录了。具体实现步骤如下:

1.本地windows操作

  • Windows 打开 cmd
  • 输入:ssh-keygen.exe
  • 连续回车就 OK
  • 完成后会在用户目录下的.ssh目录下生成公钥和私钥

image-20220222113656154

2.远程服务器操作

  • 在Linux 打开终端
  • 输入 ssh-keygen 回车(生成虚拟机的公私钥)
  • 完成后会在用户目录下生成 .ssh 目录(输入 ls -a 查看)
  • 进入ssh目录 cd .ssh
  • vim authorized_keys
  • 将 Windows 电脑 id_rsa.pub里的文本,拷贝到虚拟机 authorized_keys 里

image-20220222113923615

3.免密登录

  • windwos 打开 cmd
  • 输入:ssh user_name@ip
  • 如果windows用户名与你要登录 linux 的用户名相同,直接 ssh ip 即可`

关闭密码登录(可选)

此时我们需要在服务器关闭密码登录的方式

  • 输入vim /etc/ssh/sshd_config

  • 在文件中找到如下两个变量,修改成如下的值

    #禁用密码验证
    PasswordAuthentication no
    #启用密钥验证
    PubkeyAuthentication yes
    
  • 重启sshd使修改生效。
    service sshd restart

证书登录

它引入了一个证书颁发机构(Certificate1 authority,简称 CA),对信任的服务器颁发服务器证书,对信任的用户颁发用户证书。

登录时,用户和服务器不需要提前知道彼此的公钥,只需要交换各自的证书,验证是否可信即可。

证书登录的主要优点有两个:(1)用户和服务器不用交换公钥,这更容易管理,也具有更好的可扩展性。(2)证书可以设置到期时间,而公钥没有到期时间。针对不同的情况,可以设置有效期很短的证书,进一步提高安全性。

后续如果使用到会补充此方式的相关细节。

posted @ 2022-02-22 11:47  CuriosityWang  阅读(1143)  评论(0编辑  收藏  举报