一、 安装依赖#
安装以下依赖包:
# 更新库
sudo apt update
# 安装依赖
sudo apt install zlib1g libpam0g-dev libssl-dev
二、 安装包下载#
下载以下软件包,版本参考下载说明链接:
OpenSSL
官方下载地址: https://www.openssl.org/source/OpenSSH
官方下载地址: https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/Zlib
官方下载地址: http://www.zlib.net/
三、 准备#
验证 telnet
服务是否可用:
telnet ip
如果登录不成功,需要安装 telnet
服务:
# 安装 telnet
sudo apt-get install openbsd-inetd telnetd telnet
# 启动服务
sudo /etc/init.d/openbsd-inetd restart
# 查看 telnet 端口
netstat -anpt | grep 23
#防火墙放开 23 端口
sudo ufw allow 23
# 再次测试是否成功登陆
telnet ip
四、安装#
卸载原 openssh
:
sudo apt-get remove openssh-server openssh-client
ps. 此时无法再新建 ssh 连接,所以切勿关闭当前操作界面。
1. 安装 zlib#
tar -zxvf zlib-version.tar.gz
cd zlib-version
./configure --prefix=/usr/local/zlib
make && sudo make install
2. 升级 openssl#
tar -zxvf openssl-version.tar.gz
cd openssl-version
./config shared zlib
make && sudo make install
加上 shared 参数,以免安装 openssh 时无法找到 zlib
2.1 移走并备份原 openssl#
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo mv /usr/include/openssl /usr/include/openssl.bak
2.2 创建软链接到系统位置#
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
sudo ln -s /usr/local/include/openssl /usr/include/openssl
2.3 将 openssl 的 lib 库添加到系统#
sudo echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
# 使新添加的lib被系统找到
sudo ldconfig
2.4 查看 openssl 版本#
openssl version -a
3. 升级 openssh#
3.1 移走并备份原 openssh#
sudo mv /etc/init.d/ssh /etc/init.d/ssh.old
sudo cp -r /etc/ssh /etc/ssh.old
3.2 升级 openssh#
tar -zxvf openssh-version.tar.gz
cd openssh-version
# 需要指定openssl的安装路径
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd
make && sudo make install
3.3 查看当前 SSH 的版本#
ssh -V
sshd -V
五、 修改还原默认配置#
cd /etc/ssh
sudo mv sshd_config sshd_config.default
sudo cp ../ssh.old/sshd_config ./
# 使用原来的 /etc/init.d/ssh
sudo mv /etc/init.d/ssh.old /etc/init.d/ssh
# 取消注销指定服务
sudo systemctl unmask ssh
# 重启 sshd
sudo systemctl restart sshd
六、 关闭 Telnet 服务#
-
停止 Telnet 服务:
sudo systemctl stop openbsd-inetd
-
禁用 Telnet 服务:
sudo systemctl disable openbsd-inetd
-
卸载 Telnet 服务器(可选):
sudo apt remove telnetd
这将完全移除 Telnet 服务器,包括配置文件和可执行文件。
-
防火墙关闭
23
端口:# 查看当前防火墙规则,并附带编号 sudo ufw status numbered # 删除防火墙规则 sudo ufw delete <规则编号>