注:由于Centos7自带的openssh版本过低且存在漏洞,所以为了安全考虑我们需要升级openssh到最高版本
1.先通过yum更新,会将openssh自动更新到最高版本
yum -y update openssh
如果报错 /var/run/yum.pid已被锁定
则执行命令删除:
rm -rf /var/run/yum.pid
注:由于yum中的openssh未必已经同步了openssh中的最高版本,如果不是真正的最高版本,我们还要通过编译安装
2.利用yum升级并不能将ssh彻底更新到最新版本,然后还得需要编译安装
安装一些需要的环境:
yum -y install wget tar gcc make
3.上传 zlib-1.2.11.tar.gz,openssl-1.1.1d .tar.gz,openssh-8.2p1.tar.gz
从官网下载以上压缩包并上传到服务器并解压
tar --no-same-owner -zxf zlib-1.2.11.tar.gz
tar --no-same-owner -zxf openssl-1.1.1d_.tar.gz
tar --no-same-owner -zxf openssh-8.2p1.tar.gz
4.安装zlib
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
5.安装openssl
cd openssl-1.1.1d
./config --prefix=/usr/local/ssl -d shared
make && make install
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
ldconfig -v
注:执行ldconfig -v有些报错,直接忽略即可
6.安装openssh-8.2p1
cd openssh-8.2p1
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make && make install
7.卸载由yum安装的openssh
yum remove openssh
8.修改配置
启动前要将新生成的sshd_config修改以下几个地方
vim /usr/local/openssh/etc/sshd_config
PermitRootLogin yes PubkeyAuthentication yes PasswordAuthentication yes
复制文件到相应系统文件夹
cp /mnt/update/openssh-8.2p1/contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
9.启动
service sshd restart
其他相关命令:
1.重启命令
systemctl start sshd.service
或
systemctl restart sshd.service
2.查看状态
systemctl status sshd.service
3.启动服务
systemctl start sshd.service
4.开机自启
systemctl enable sshd.service
5.查看消息
sshd -t