ssh7.4升級到9.3p2

hellohf123發表於2023-12-13

1、首先檢視當前版本 centos7 預設使用ssh

[root@dbserver ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@dbserver ~]# sshd -v
unknown option -- v
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

2、安裝依賴包

yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pam-devel libselinux-devel wget

3、下載

mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/
mv openssh-9.3p2.tar.gz /opt && cd /opt

4、解壓安裝

[root@dbserver opt]# tar -zxvf openssh-9.3p2.tar.gz
[root@dbserver opt]# cd openssh-9.3p2/

5、備份openssh

mv /etc/ssh /etc/ssh.bak
mkdir /usr/bin/bak
cp -arpf /usr/bin/{cp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /usr/bin/bak/
cp -arpf /usr/sbin/sshd /usr/sbin/sshd.bak
cp -arpf /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
cp -arpf /etc/pam.d/sshd /etc/pam.d/sshd.bak


6、執行安裝

./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/sshd   --sysconfdir=/etc/ssh
由於啟用了PAM則需要安裝一個配置檔案,該檔案在contrib目錄下
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
#複製開機啟動指令碼
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
編譯成可執行檔案
make && make install

7、修改檔案許可權

chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

8、修改配置

修改配置檔案 允許root遠端登入
將PermitRootLogin prohibit-password 修改為 PermitRootLogin yes
vim /etc/ssh/sshd_config
PermitRootLogin yes
關閉DNS選項加快訪問
PubkeyAuthentication yes
註釋下面2個配置
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
檢查ssh配置 無報錯即為正常
#檢查是否有配置錯誤
sshd -t

9、替換新版本openssh檔案,一條一條執行,確認

cp -arpf /opt/openssh-9.3p2/scp /usr/bin/
cp -arpf /opt/openssh-9.3p2/sftp /usr/bin/
cp -arpf /opt/openssh-9.3p2/ssh /usr/bin/
cp -arpf /opt/openssh-9.3p2/ssh-add /usr/bin/
cp -arpf /opt/openssh-9.3p2/ssh-agent /usr/bin/
cp -arpf /opt/openssh-9.3p2/ssh-keygen /usr/bin/
cp -arpf /opt/openssh-9.3p2/ssh-keyscan /usr/bin/
cp -arpf /opt/openssh-9.3p2/sshd /usr/sbin/sshd


9、啟動服務,驗證ssh版本

systemctl daemon-reload
systemctl enable sshd.socket
sshd -t
systemctl restart sshd
systemctl enable sshd
systemctl status sshd


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70004783/viewspace-2999914/,如需轉載,請註明出處,否則將追究法律責任。

相關文章