最近公司项目上扫出来的漏洞需要升级ssh到9.7版本,这里记录下升级的流程。
安装包下载链接
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
https://www.openssl.org/
升级最新的openssh需要ssl的版本匹配,这个根据实际操作系统上的版本确定,我这里是需要先升级ssl
注意
需要多开一个至多个保持长连接,以免升级出错导致远程不上。
一、升级Opnessl
1.1安装依赖
yum install-y perl-CPAN
yum install-y perl-IPC-Cmd
yum install-y gcc*
1.2安装
#备份原来的sslcp /usr/bin/openssl openssl_bak
#解压压缩包至/usr/local
makir openssl
tar-zxvf openssl-xxx.tar.gz
cd openssl-xxx
./config --prefix=/usr/local/openssl
#下面这条命令执行时间较久,属于正常情况。make&&makeinstallln-s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln-s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln-s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
chmod +777 /usr/local/openssl/lib64
chmod +777 /usr/local/openssl
ldconfig -v
ldd /usr/local/openssl/bin/openssl
1.3 验证版本
openssl version
二、升级Openssh
2.1 安装依赖
yum install gcc perl zlib-devel openssl-devel pam-devel libselinux-devel zlib-devel openssl-devel -y
2.2 安装软件
cd /usr/local
#备份原来的openssh,我得是在/usr/local/opensshmv /usr/local/openssh /usr/local/openssh_bak
cp /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/sbin/sshd /usr/sbin/sshd.bak
mkdir openssh
tar-zxvf openssh_9.7p1.tar.gz
cd openssh_9.7p1
# with-ssl-dir 是ssl的安装目录
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl
make&&makeinstall#卸载掉之前用yum安装的openssh版本。
yum remove openssh
#修改配置文件vim /usr/local/openssh/etc/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
Subsystem sftp internal-sftp
#退出vimcp /usr/local/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
#我的是生产环境,配置文件权限chmod +777 /usr/local/openssh
chmod +777 /usr/local/openssh/bin
2.3验证版本
chkconfig--add sshd
chkconfig sshd on
systemctl restart sshd
#验证版本ssh-V
三、出现的问题
3.1 Xshell直接跳转Xftp失败
sshd_config配置文件问题。
Subsystem sftp internal-sftp
3.2 scp不能使用
权限问题
3.3 lftp不能使用
同3.4处理
3.4 脚本自动执行卡死,手动执行成功
脚本内容可能涉及lftp远程电脑,
①需要在环境变量文件(~/.bash_profile)的PTATH后加上Openssh的路径,
Openssh的sshd_config文件中会有具体的路径显示如下:
:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh/bin
②在具体脚本内加上如下内容:
#!/bin/bash. /etc/profile
. ~/.bash_profile
source /home/zz/.bash_profile
修改脚本时间,等待脚本自动执行。
版权归原作者 江风op 所有, 如有侵权,请联系我们删除。