升级openssh9.5p1.
上传 openssh-9.5p1.tar.gz
1.安装telnet-server安装配置telnet服务(重要!!!)
OpenSSH用于远程登录,一旦升级失败用不了,将无法远程登录,安装telnet-server备用。
yum install telnet-server -y
配置类型:
cat >> /etc/securetty <<EOF
pts/0
pts/1
pts/2
pts/3
pts/5
EOF
开启自启动:
systemctl enable telnet.socket
启动telnet:
systemctl start telnet.socket
添加防火墙例外:防火墙没开可以不做
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
注意:telnet默认只允许普通用户登录,
上面那步
cat >> /etc/securetty <<EOF
pts/0
pts/1
应该是用来设置允许超管账户登录的 ,但是我设置了没用,所以先加了个普通账户,然后再su root 切换超管用户。
设置普通账户:
在root权限下,
命令:useradd+用户名,它不会在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的;
命令:useradd -m +用户名,将在/home目录下创建同名文件夹,然后利用( passwd + 用户名)为指定的用户名设置密码。
重要!!!先确保除了远程外有别的方式可以连接到服务器,比如vnc、telnet再进行以下操作。
我是确认有管理人员那边有vnc,并且自己测试telnet能连接要操作的这台机器后才进行的以下操作,需要同一网段的其他机器telnet上去。
2.安装引用库:
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel wget vim unzip lrzsz(openssl所需依赖)
yum install -y wget gcc pam-devel libselinux-devel zlib-devel openssl-devel
yum -y install perl(openssh所需依赖)
(确保yum源能用 不然到时候卸载了原来的openssh少了包没法上传安装)
http://mirror.centos.org/centos/7/os/x86_64/Packages/
或者可以从这个链接里搜索下载
3.备份之前的ssh
cp -r /etc/ssh/ /etc/ssh_old/
可以百度一下备份的地方全不全,这个我没用到恢复,不太确定有没有用
4.卸载旧OpenSSH:(谨慎操作)
yum remove openssh -y
rm -rf /etc/ssh/*
5.解压openssh-9.5p1.tar.gz
tar -zxvf openssh-9.5p1.tar.gz -C /usr/local
6.进入openssh-9.5p1
cd openssh-9.5p1
7.开始编译安装:
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam && make -j 4 && make install
8.如果顺利,你将看到最后2行:
如果不顺利,可以看看我下面踩的坑。
ssh-keygen:......ECDSA ED25519
/usr/sbin/sshd......
至此一切顺利,接下来的操作:
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
chkconfig sshd on
修改配置,允许root登录和证书登录:
vim /etc/ssh/sshd_config
将 PasswordAuthentication yes 注释打开
配置 PermitRootLogin yes
echo PasswordAuthentication yes >> /etc/ssh/sshd_config
echo PermitRootLogin yes >> /etc/ssh/sshd_config
重启服务完成升级
service sshd restart
验证是否能通过堡垒机远程到服务器
没问题后关闭telnet服务
systemctl stop telnet.socket
取消开机自启
systemctl disable telnet.socket
删除telnet端口23,前面没开防火墙的可以不做这一步
firewall-cmd --permanent --zone=public --remove-port=23/tcp
firewall-cmd --reload
------------------------------------------------------------分割线----------------------------------------------------------------
踩坑大全:
卸载旧的openssh后,意味着远程连接不可用,scp、rz、ftp、sftp等等都不能用,我的yum也不能用了,没法上传文件,但是之前的telnet派上用场了,能进入输命令操作(或多开几个窗口别关也不会被锁在外面)
具体报错记不清了好像是缺少一些什么包之类的,这个要注意,如果yum不能用,就要提前确保所有需要的依赖包都下载备好,不然后期都没法上传文件,我就是吃了这个亏,升级ssh所需的依赖包都要准备好!!