1、为了防止升级失败登陆不了,所以需要安装telnet
mkdir /root/ssh_update yum install -y telnet-server yum install -y xinetd
centos6: sed -i '/disable/s/yes/no/' /etc/xinetd.d/telnet service xinetd start
检查下23端口,证明telnet服务已经运行了
centos7: systemctl start telnet.socket systemctl start xinetd
注意: 默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户。 echo 'pts/0' >>/etc/securetty echo 'pts/1' >>/etc/securetty centos6: service xinetd restart
centos7: systemctl restart telnet.socket
验证telnet(默认是23端口):
2、检查环境 官方给出的文档中提到的先决条件openssh安装依赖zlib1.1.4并且openssl>=1.0.1版本就可以了。那么直接看当前系统的openssl版本是多少
ps:没有问题,版本不需要升级
安装相关组件并升级openssh:
yum install -y gcc openssl-devel pam-devel zlib zlib-devel
备份原来的数据
mv /etc/ssh/ /mnt/ssh.bak
删除现在安装sshd相关软件包
rpm -e rpm -qa | grep openssh
--nodeps
3、下载需要的源码包并升级openssh:
下载openssh7.9的源码包
wget
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
tar xf openssh-7.9p1.tar.gz
cd openssh-7.9p1
编译sshd
./configure --sysconfdir=/etc/ssh
安装sshd
make && make install
查看下ssh命令的执行路径
[root@localhost ~]# which sshd /usr/local/sbin/sshd
复制源码解压路劲的开机启动脚本
cp /root/ssh_update/openssh-7.9p1/contrib/redhat/sshd.init /etc/init.d/sshd
修改开机启动文件
sed -i '25cSSHD=/usr/local/sbin/sshd' /etc/init.d/sshd sed -i '41c/usr/local/bin/ssh-keygen -A' /etc/init.d/sshd
修改配置文件,允许root通过ssh远程登陆
sed -i "/#PermitRootLogin prohibit-password/aPermitRootLogin yes"
/etc/ssh/sshd_config
复制文件到/usr/local/bin/下
cp /root/ssh_update/openssh-7.9p1/contrib/ssh-copy-id /usr/local/bin chmod +x ssh-copy-id
启动sshd服务
service sshd start
查看下ssh版本
[root@localhost ~]# ssh -V OpenSSH_7.9p1, OpenSSL 1.0.1e-fips 11 Feb 2013
###################################################################
复制代码 OpenSSH 8.0 发布了,此版本缓解了 scp(1) 工具和协议漏洞 CVE-2019-6111,该漏洞此前我们之前报导过:知名文件传输协议 SCP 被曝存在 35 年历史的安全漏洞。
将文件从远程系统复制到本地目录时,SCP 客户端无法验证 SCP 服务器返回的对象是否与请求的东西一致,这使得攻%击者可以使用恶意服务器控制的内容创建或破坏本地文件。
OpenSSH 8.0 的缓解措施添加了客户端检查,查看从服务器发送的文件名与命令行请求是否匹配。
SCP 协议已经过时,不灵活且不易修复,OpenSSH 官方建议使用更现代的协议进行文件传输,如 sftp 和 rsync。
此版本新特性包括:
ssh(1)、ssh-agent(1)、ssh-add(1):PKCS#11 token 中添加对 ECDSA 密钥的支持。 ssh(1)、sshd(8):基于 Streamlined NTRU Prime 4591^761 和 X25519 的组合,添加实验性量子计算抗性密钥交换方法。 ssh-keygen(1):将默认 RSA 密钥大小增加到 3072 位。 ssh(1):允许“PKCS11Provider = none”覆盖 ssh_config 中 PKCS11Provider 指令的后续实例。 ssh(1):提示是否录制新主机密钥时,输入密钥指纹作为“yes”。 ssh-keygen(1):在单个命令行调用上签名多个证书时,允许自动递增证书序列号。 scp(1)、sftp(1):接受 -J 选项作为 scp 和 sftp 命令行上 ProxyJump 的别名。 ssh-agent(1)、ssh-pkcs11-helper(8)、ssh-add(1):接受“-v”命令行标志以增加输出的详细程度;将详细标志传递给子进程,例如从 ssh-agent 启动的 ssh-pkcs11-helper。 ssh-add(1):添加“-T”选项以允许通过执行签名和验证来测试代理中的密钥是否可用。 sshd(8):在 PAM 环境中暴露 $SSH_CONNECTION。 完整更新内容查看更新日志:
http://www.openssh.com/txt/release-8.0