升级 OpenSSH

从选择一个最新的版本 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

 1# 获取最新版本 openssh
 2wget --no-check-certificate https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
 3
 4# 解压
 5tar -zxvf openssh-9.7p1.tar.gz
 6
 7# 安装相关需要组件
 8yum -y install pam-devel gcc zlib-devel openssl-devel
 9
10# 检查配置
11./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man --with-pam
12
13# 编译安装
14make && make install

编译完成之后会有部分文件中的参数例如 GSSAPIAuthentication 显示不支持,将其删掉即可。

最后,重启 ssh 服务。

1service sshd restart

取消 CBC 连接模式

这边的服务器版本太旧了,升级 OpenSSH 非常麻烦,可以直接不使用 CBC。

 1vim /etc/ssh/sshd_config
 2
 3
 4# 如果已经有 Ciphers,则将aes128-cbc和3des-cbc等带有cbc后缀的删除
 5# 否则添加 Ciphers
 6Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr
 7
 8
 9# 重启 ssh
10systemctl restart sshd

测试生效

1ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc 127.0.0.1
此时应该显示
1...
2Unable to negotiate with 127.0.0.1 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr

Reference

  1. https://openfind.zendesk.com/hc/zh-tw/articles/5337454837519-%E6%9B%B4%E6%96%B0-CentOS-OpenSSH-%E7%89%88%E6%9C%AC
  2. https://www.cnblogs.com/niway/p/16808877.html