注:由於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