Bootstrap

平滑升级sshd远程服务

下载链接https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz

1 安装telnet
1.1 安装telnet
为防止openssh升级失败。所以安装telnet。保证openssh升级失败也可以通过telnet连接服务器,进行恢复操作。并不用去机房。
#此步确保允许终端telnet上服务器,默认情况下,系统是不允许root用户telnet远程登录的。
#如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户。
echo ‘pts/0’ >>/etc/securetty
echo ‘pts/1’ >>/etc/securetty
echo ‘pts/2’ >>/etc/securetty
echo ‘pts/3’ >>/etc/securetty
cat >>/etc/securetty <<EOF

EOF

yum install -y telnet-server
yum install -y xinetd
systemctl start telnet.socket
systemctl start xinetd

稳一点,开启之后,可以再验证下:
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl list-unit-files |grep telnet
systemctl list-unit-files |grep xinetd

#enabled证明成功

直接telnet IP 就可以实现远程((如开启了防火墙,需要开放23端口
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
iptables -nL #查看是否加入防火墙策略中)
在这里插入图片描述
在这里插入图片描述

下载openssh-7.9p1.tar.gz并上传到服务器上

1.2 卸载旧的ssh
cp -r /etc/ssh /etc/ssh.old #备份一些之前的文件
rpm -qa |grep openssh
rpm -e --nodeps openssh-clients-6.6.1p1-31.el7.x86_64
rpm -e --nodeps openssh-6.6.1p1-31.el7.x86_64
rpm -e --nodeps openssh-server-6.6.1p1-31.el7.x86_64
rpm -qa |grep openssh

#如果之前就是源码安装的,找到之前的安装包,在里面执行make uninstall
ssh -V
find / -type d -name “openssh*”
cd /home/sshd/openssh-8.0p1

make uninstall
在这里插入图片描述

1.3 安装新版本ssh

1、连接到其他计算机时,OpenSSH作为两个进程运行。第一个进程是特权进程,并根据需要控制权限的颁发。第二个进程与网络通信。设置适当的环境需要额外的安装步骤,这些步骤通过以root用户身份发出以下命令来执行 :
install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
groupadd -g 50 sshd
useradd -c ‘sshd PrivSep’ -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

2、解压安装
tar -zxvf openssh-7.9p1.tar.gz
cd openssh-7.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
make

3、修改相应文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

4、安装
make install

5、配置
install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-7.9p1
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
命令解释:
–sysconfdir=/etc/ssh:这可以防止安装配置文件 /usr/etc。
–with-md5-passwords:这使得可以使用MD5密码。
–with-pam:此参数在构建中启用 Linux-PAM支持。
–with-xauth=/usr/bin/xauth:为X身份验证设置xauth二进制文件的默认位置。如果将xauth安装到其他路径,请更改位置。这也可以sshd_config使用XAuthLocation关键字进行控制。如果已安装Xorg,则可以省略此开关。
–with-kerberos5=/usr:此选项用于在构建中包含Kerberos 5支持。
–with-libedit:此选项为sftp启用行编辑和历史记录功能。

第6步不用覆盖,把root权限放开就好

2 开机自启动
ssh服务必须开机自启动,不然重启的时候爆炸。
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
systemctl restart sshd

3 验证操作

ssh -V

OpenSSH_7.9p1, OpenSSL 1.0.2k-fips 26 Jan 2017

验证操作看到版本正确即可,不用再跟着文档操作

然后将/etc/ssh/sshd_config里的这三个认证注释 去掉,分别为:
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
systemctl restart sshd
在这里插入图片描述

如不行试试关闭Selinux

如果要root远程登录修改/etc/ssh/sshd_config配置文件,修改以下内容
在这里插入图片描述

最后卸载刚才yum安装的telnet-server,xinetd
rpm -qa |grep telnet-server
rpm -qa |grep xinetd
rpm -e --nodeps …
在这里插入图片描述

参考文献:
https://www.jianshu.com/p/220f7fd908b0
https://blog.csdn.net/S_O_L_O_R/article/details/81541190

;