准备工作 安装编译所需依赖软件包:建议临时关闭 selinux(setenforce 0)
yum install -y wget gcc pam-devel libselinux-devel zlib-devel openssl-devel 下载 OpenSSH 安装包上传至服务器或 wget 直接下载
1. cd /usr/local/src
2. wget -O openssh.tar.gz https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/ope nssh-9.0p1.tar.gz
备份配置文件 一般卸载的时候都会把配置文件以 sshd_config.rpmsave 的方式 另存一份,但是/etc/pam.d/sshd 这个配置文件并没有另存,所以建议都备份 一下。
1. cp /etc/ssh/sshd_config sshd_config.backup
2. cp /etc/pam.d/sshd sshd.backup
删除低版本 OpenSSH 的的 rpm 包
rpm -e --nodeps `rpm -qa | grep openssh`
安装 openssh 解压
1. tar -zxvf openssh.tar.gz
编译配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5- passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssldir=/usr/local/ssl --without-hardening
编译安装
make && make install
配置 调整文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
复制配置文件
1. cp -a contrib/redhat/sshd.init /etc/init.d/sshd
2. chmod u+x /etc/init.d/sshd
还原配置文件
1. mv ../sshd.backup /etc/pam.d/sshd
2. mv ../sshd_config.backup /etc/ssh/sshd_config
3. /etc/ssh/sshd_config 配置文件中需要注意点
PasswordAuthentication yes
PermitRootLogin yes
注释:#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
#Userpam yes
(不注释需要关闭 selinux 服务, 不关闭 selinux 会报关于/bin/bash 权限等问题)
添加自启服务 ssh 到开机启动项
1. chkconfig --add sshd
2. chkconfig sshd on
重启服务
systemctl restart sshd
验证结果 查看下安装结果:
ssh -V
运行结果
OpenSSH_9.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
到此,升级基本完成。安全起见不要关闭 SSH 窗口,新增一个 SSH 连接, 看看能否正常登录。如果不能登录,可以根据 sshd 的日志进行配置调整。
清理源代码
rm -rf /usr/local/src/openssh*
ftp 问题
ftp 链接不了,在/etc/ssh/sshd_config 下
修改 Subsystem sftp /usr/libexec/openssh/sftp-server 路径为:Subsystem sftp /usr/libexec/sftp-server 重启 ssh 服务
systemctl restart sshd