目錄
升級openssh,原來版本7.4,升級到8.0,操作系統時centos7.6. 提供兩種升級方法,一種是編譯源碼,另外一種是直接打rpm。
方法一:直接源碼編譯升級
1、刪除老的版本:
#rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}
2、編譯
#yum install -y gcc openssl-devel pam-devel rpm-build
#tar xzvf openssh-8.0p1.tar.gz
#cd openssh-8.0p1
#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
#make && make install
3、查看版本:ssh -V,已經更新到8.0。
3、問題一make install時提示:Permissions 0640 for '/etc/ssh/ssh_host_ecdsa_key' are too open。
解決:權限給的太大了,改爲chmod -R 400 /etc/ssh/*,就沒有這個提示了。
方法二:打成rpm包,直接升級。
#yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y
#mkdir -p /root/rpmbuild/{SOURCES,SPECS}
#cd /root/rpmbuild/SOURCES
#wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
#wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
#tar zxvf openssh-8.0p1.tar.gz
#mv openssh-8.0p1/contrib/redhat/openssh.spec ../SPECS/
#chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec
#cp /root/rpmbuild/SPECS/openssh.spec /root/rpmbuild/SPECS/openssh.spec_def
#sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
#sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
#cd /root/rpmbuild/SPECS/
修改openssh.spec 註釋掉 BuildRequires: openssl-devel < 1.1 這一行。
#rpmbuild -ba openssh.spec
修改配置文件
# chmod 400 /etc/ssh/ssh_host* (默認是640權限,權限過大,啓動服務會報錯誤。)
#設置不允許root登錄,就增加下面一句話到配置文件,否則不需要。
# echo "PermitRootLogin no" >> /etc/ssh/sshd_config
#systemctl restart sshd
打好的rpm放在 /root/rpmbuild/RPMS下面。
更新openssh
rpm -Uvh /root/rpmbuild/RPMS/*.rpm
參考資料:
1. https://blog.csdn.net/yujia_666/article/details/90439598
2. https://www.cnblogs.com/fsckzy/p/10834550.html