转载:参考地址
每台服务器环境都不一样,该过程仅表示博主服务器升级过程,不能保证100%成功,请谨慎升级
每台服务器环境都不一样,该过程仅表示博主服务器升级过程,不能保证100%成功,请谨慎升级
每台服务器环境都不一样,该过程仅表示博主服务器升级过程,不能保证100%成功,请谨慎升级
1.环境
- 系统:CentOS7
- 旧SSH版本:7.4
- 目标SSH版本:8.3(最新版本)
[root@root2 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2. 准备
2.1 安装telnet
更新ssh之前一定要安装telnet,以防止ssh更新失败后连接不上服务器
- 执行命令安装telnet-server,并开启服务
yum install -y telnet-server telnet xinetd && systemctl start telnet.socket && systemctl start xinetd && systemctl enable telnet.socket && systemctl enable xinetd.service
- telnet是默认禁止root用户登录的,修改配置使得root能登录
vi /etc/pam.d/login
注释掉pam_securetty.so 这一行,一般是第二行。前面加#注释
#auth xxxxxxxxx pam_securetty.so
vi /etc/securetty
检查该文件中是否有pts/0-3,一般设置这些就可以了
pts/0
pts/1
pts/2
pts/3
- 使用本地去访问服务器telnet,看看是否连接成功
注意:telnet服务修改的一切配置,在升级完ssh后建议恢复原样
2.2.安装前的准备
- 去官网查看最新版本
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
找到openssh-8.3p1.tar.gz
- 安装ssh所需依赖包
yum install -y pam-devel libselinux-devel zlib-devel openssl-devel
- 下载所需要的ssh版本的包,并解压(包会下载到当前目录下,所以需要在你的包存放目录下执行)
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz && tar -xzf openssh-8.3p1.tar.gz
3.编译安装
- 进入解压后的文件,执行配置
cd openssh-8.3p1 && ./configure --prefix=/usr/ --with-md5-passwords --with-pam --with-zlib --sysconfdir=/etc/ssh
- 编译安装前,备份当前ssh的文件
mkdir /tmp/backup && mv /etc/ssh/* /tmp/backup
- 编译安装
make && make install
- 将旧的ssh文件恢复到新的ssh中
rm -rf /etc/ssh/* && cp /tmp/backup/* /etc/ssh/ -r && chmod -R 600 /etc/ssh/*
- 设置自启动(在openssh-8.3p1目录中执行)
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
mv /usr/lib/systemd/system/sshd.service /tmp
chkconfig sshd on
- ssh默认root不能访问,修改配置
vi /etc/ssh/sshd_config
找到PermitRootLogin,将其修改为yes,如果注释了就取消注释
PermitRootLogin yes
- 重启ssh
systemctl enable sshd # 开机自启动
systemctl restart sshd # 重启ssh
- 检查ssh版本
[root@root2 openssh-8.3p1]# ssh -V
OpenSSH_8.3p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@root2 openssh-8.3p1]# /usr/bin/ssh -V
OpenSSH_8.3p1, OpenSSL 1.0.2k-fips 26 Jan 2017
- 再次创建ssh连接服务器,查看是否成功
- 测试通过后将telnet的一些设置恢复原样