#!/bin/bash # install_ssh() { NOW=`date +%Y%m%d` setenforce 0 cd /usr/local/ tar -xvf /usr/local/openssh-7.5p1.tar.gz tar -xvf /usr/local/openssl-1.0.1t.tar.gz mv /usr/local/openssh-7.5p1/ /usr/local/openssh/ mv /etc/init.d/sshd /etc/init.d/sshd_$NOW mv /etc/ssh /etc/ssh_$NOW mv /etc/ssl /etc/ssl_$NOW mv /usr/bin/openssl /usr/local/openssl_$NOW mv /usr/include/openssl /usr/include/openssl_$NOW mv /usr/lib/openssl /usr/lib/openssl_$NOW cd /usr/local/openssl-1.0.1t/ ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib64 shared zlib-dynamic make depend make make MANDIR=/usr/share/man MANSUFFIX=ssl install ldconfig -v sed -i 's/OpenSSH_7.5/OpenSSH/' /usr/local/openssh/version.h cd /usr/local/openssh/ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/ssl --with-md5-passwords --mandir=/usr/share/man --without-openssl-header-check make make install cp /usr/local/openssh/contrib/redhat/sshd.init /etc/init.d/sshd echo "PermitRootLogin yes" >> /etc/ssh/sshd_config sed -i 's@/sbin/restorecon /etc/ssh/ssh_host_key.pub@@' /etc/init.d/sshd chkconfig sshd on service sshd restart } check_depend_pack() { NUM=`rpm -qa gcc zlib-devel perl | wc -l` if [[ $NUM -lt 3 ]];then echo "Sorry Sir. You need to install the package of gcc and zlib-devel and perl." else install_ssh fi } check_depend_pack
在安裝Centos7.6的時候出現了一點小問題,使用上述腳本安裝后,執行service sshd restart 發現不管用了
這是因為sshd不兼容systemd造成的,改成sysv不會出錯,所以我執行如下兩句:
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.bak systemctl daemon-reload
之后再使用service sshd restart 就沒有問題了。