IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    SSH 的武林秘籍「中篇」

    Teacher Du发表于 2024-11-01 03:51:26
    love 0

    SSH 为 Secure Shell 缩写,由 IETF 的网络小组所制定。SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠的,为远程登录会话和其他网络服务提供安全性的协议。

    修改默认端口

    我们会经常使用如下命令远程控制你的 Linux 系统:

    1
    ssh USERNAME@HOSTNAME

    在此条命令中,系统会自动链接服务器的 22 端口,因为 SSH 的默认端口是 22。如果我们修改默认端口,同样可以增强系统的安全性。首先修改配置文件:

    1
    vi /etc/ssh/sshd_config

    搜索关键词 Port,如果该设置项有注释请去掉,并将数字改为你想设置的值。重启服务:

    1
    systemctl restart sshd

    修改端口之后,连接的命令为:

    1
    ssh -p NEWPORT USERNAME@HOSTNAME

    禁止 root 的登录

    每一个 Linux 系统,都会有 root 用户,就像 Windows 系统都有 Administrator 一样。当黑客们去尝试破解你的服务器的密码时,他们肯定会尝试使用此用户名去登录,这样他们只需解决密码即可。那如果我们禁用了 root 用户而改用其它用户,那破解的难度就增加了。首先修改配置文件:

    1
    vi /etc/ssh/sshd_config

    搜索关键词 PermitRootLogin,如果该设置项有注释请去掉,并将阈值修改为 no。重启服务:

    1
    systemctl restart sshd

    使用证书登录

    上面的两种方式可以提升服务器的安全性,但也并不是绝对的,毕竟端口号的范围是 1-65535,而用户名是明文的,所以很多企业都会使用证书验证形式。首先在客户端生成证书文件:

    1
    ssh-keygen

    一路回车即可,生成的证书一般会保存在~/.ssh/id_rsa.pub,需要上传到服务器:

    1
    scp ~/.ssh/id_rsa.pub USERNAME@HOSTNAME:~

    然后在服务器将该证书,导入到验证文件中:

    1
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    之后客户端就可以用证书登录了:

    1
    ssh -i ~/.ssh/id_rsa USERNAME@HOSTNAME

    保持持久连接

    一般服务器都会设置无响应超时断开时间,即长时间未收到客户端的数据后,会自动断开与客户端的连接。就像电脑长时间未操作,系统会自动进入到休眠一样。有时候我们需要长时间保持连接,可以执行下面命令:

    1
    ssh -o ServerAliveInterval=60 USERNAME@HOSTNAME

    如果感觉每次输入太过麻烦,也可以修改配置文件/etc/ssh/ssh_config,添加以下内容即可:

    1
    ServerAliveInterval 60


沪ICP备19023445号-2号
友情链接