前言:最好先装Telnet服务防止openssh升级失败无法远程服务器
1:查看当前的openssh版本,并备份/etc/ssh/
ssh -V
2:安装必要的组件
yum install -y gcc openssl-devel pam-devel rpm-build (不同版本的需要安装的组件可能不同,可根据编译时的报错安装)
3:cd到放安装包的地方,可随意,以下soft是随意写的,可替换
cd /soft
4: 下载8.0的安装包以及解压
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
tar -zxvf openssh-8.0p1.tar.gz
5:进入openssh-8.0p1目录
cd openssh-8.0p1/
6:确认电脑上usr和/etc/ssh目录地址,替换以下的路径信息信息
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
如果有报错解决报错
7:执行
make && make install
8:如果出现如下问题
Permissions 0640 for '/etc/ssh/ssh_host_ecdsa_key' are too open
解决:
修改相关提示文件的权限为600,如有其他文件也报上面的错也同样操作
例如:chmod 600 /etc/ssh/ssh_host_ecdsa_key
9:查看现在的版本,应该是8.0了
ssh -V
10.修改配置文件
编辑ssh配置文件:
vim /etc/ssh/sshd_config 配置:
PasswordAuthentication yes
如果要允许root用户ssh登录需要配置:PermitRootLogin yes
11.设置开机启动
cd openssh-8.0p1/
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
11.重启服务
服务重启 service sshd restart
查看服务状态(systemctl status sshd.service)
查看当前ssh版本: ssh -V
12.测试是否成功
1.测试与其他服务器能否互联
如有报错,有可能是不同版本之间的加密方式不同,导致不可用
解决方法:
将 /root/.ssh/authorized_keys里面的对应ip的加密串删除,省事就全部删了吧,哈哈哈
2. 在升级后的机器ssh其他服务器出现如下报错:
/etc/ssh/ssh_config line 59: Unsupported option "gssapiauthentication"
解决方法:
注释掉客户端配置文件 /etc/ssh/ssh_config : GSSAPIAuthentication yes 这一行
其他:我觉得写得很好的博客,使用构建rpm包的方式升级openssh
https://www.cnblogs.com/liao-lin/p/10286722.html#commentform