一篇<除草+备忘录>的文章,为Ubuntu16.04 升级新的OpenSSL版本,和上一篇提到的Ubuntu 16.04 升级OpenSSL版本相呼应,解决安全问题。同时,如果更新OpenSSH,建议先更新OpenSSL。方法如下:


过程中记录了可能会出现的一些问题。

#做好备份
cp /etc/init.d/ssh /etc/init.d/ssh.bak && cp -r /etc/ssh /etc/ssh.bak

#下载文件
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
tar zxf openssh-8.4p1.tar.gz
cd openssh-8.4p1

#下面configure 的时候可能会碰到无法找到OpenSSL的问题,在最后指定本机的ssl路径即可
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-privsep-path=/var/lib/sshd -with-ssl-dir=/usr/local/openssl/lib

#编译
make && make install

更新完,用CRT连接时如果出现报错:

Key exchange failed.
No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

打开CRT设置,在该连接的SSH设置中勾选对应的Key exchange,重试即可。

报错处理

通常报错出现在configure环节,比如错误:

configure: error: PAM headers not found

解决

apt-get install libpam0g-dev

如遇与zlib相关错误,解决如下:

sudo apt install zlib1g-dev