1.目前不支持OpenSSL 1.1.x.(条件满足,无需升级)
2.Zlib 1.1.4或1.2.1.2或更高版本(早期1.2.x版本有问题)(条件满足,无需升级)
查看openssh版本 ssh -V
查看openssl版本 openssl version (版本号1.0.x)
查看zlib版本rpm -q zlib (Zlib 1.1.4或1.2.1.2或更高版本)
cp -r /etc/ssh /etc/ssh.old #备份一些之前的文件
rpm -qa|grep openssh #会显示三行分别为openssh,openssh-clients和openssh-server
rpm -e --nodeps openssh-clients #测试服务器上实验不用写全也可以实现,写全后会报错
rpm -e --nodeps openssh
rpm -e --nodeps openssh-server
rpm -qa|grep openssh #此时查看不显示任何信息
如果之前就是源码安装的,找到之前的安装包,在里面执行
make uninstall
(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)下载最新版本openssh
下载openssh
wget ftp://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
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 (这两行是在一行打)
如果报错
① configure: error: no acceptable C compiler found in $PATH
问题解决
yum install gcc
② configure: error: * zlib.h missing - please install first or check config.log *
问题解决
yum install openssl openssl-devel -y 安装相关依赖包 (测试的时候出现了该问题)
(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* # 此行可能会报错没有关系
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)根据自身需求改写配置文件。因为配置文件为初始配置文件。所以和之前的不一样。可以使用备份配置文件覆盖。
注意:默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令
echo ‘X11Forwarding yes’ >> /etc/ssh/sshd_config
echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
echo “PasswordAuthentication yes” >> /etc/ssh/sshd_config
ssh -V #检查版本
ssh服务必须开机自启动,不然重启的时候爆炸。(建议此时不要关闭telnet)
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
ssh -V #检查版本
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
vi /etc/selinux/config
把SELINUX=enforcing 改成 SELINUX=disabled
此时如果可以正常进行ssh则升级成功
如果ssh仍无法工作请使用指令reboot重启设备
参考:
https://blog.csdn.net/lyf844692713/article/details/83718027
https://www.jianshu.com/p/220f7fd908b0
centOS7 防火墙操作
https://blog.csdn.net/wzygis/article/details/78814736
CentOS7设置ssh服务以及端口修改
https://blog.csdn.net/mrqiang9001/article/details/78308830