2019年10月16日 星期三

處理openssh相容性問題


最近把用了很多年的伺服器換掉,結果遇到一堆問題。先簡述一下:我有很多設備要管理,我們會定期用程式請這些設備吐設定檔回來。但在這一次更換server後,有部份機器吐不回來。

1、    先確認問題點。有這個問題的都是跑舊的OS的機器。
2、    我們用的是sftp,因此可以推測大概是加密方式(強度)之類的問題
3、    Log有分兩種,讓人意外的是新款的設備也無法正常連線
Oct 16 09:15:30 28.test.net.tw %SSH-3-ERROR: failed to authenticate admin enable
Oct 16 09:17:10 28.test.net.tw %SSH-3-ERROR: failed to authenticate admin !
192.168.230.56:Oct 16 09:16:23 56.test.net.tw %SSH-3-ERROR: key_verify failed for server_host_key
192.168.230.81:Oct 16 09:16:20 81.test.net.tw %SSH-3-ERROR: key_verify failed for server_host_key
192.168.230.82:Oct 16 09:16:19 81.test.net.tw %SSH-3-ERROR: key_verify failed for server_host_key
4、從log上看起來,我本來懷疑是設備的問題,還進了shell mode查了很久。看是不是能更新server_host_ke這個檔案來處理。但後來發現沒有這個檔案一樣可以正常運作,因此又回頭找伺服器的問題。
5、既然懷疑是伺服器的相容性問題。因此我作了很多調整。調cipher,調kex,調key (本來是懷疑伺服器用的加密方式太新,舊設備不支援,打算讓伺服器向下相容)
6、試了很多參數都沒有效。因此只好調整伺服器的版本,最後找了一個相對沒有那麼舊的版本將tarball解壓編譯安裝後解決了。

以下是有問題的連線,server給了New Keys之後就被斷線了。




正常應該是這樣才對,server給了新key後,clinetserver間用新key加密傳資料

作一些筆記以後用:
以下是查詢目前ssh server支援(可使用)的加密方式、驗證方式。
ssh -Q cipher
ssh -Q mac
ssh -Q kex
ssh -Q key
man 5 sshd_config這個指令也可以查看。

新版設備使用的加密方式:
cipher=aes128-ctr ksize=128 mac=hmac-sha1 pfs=diffie-hellman-group-exchange-sha256

舊版設備使用的加密方式:
cipher=3des-cbc ksize=192 mac=hmac-sha1 pfs=diffie-hellman-group1-sha1

不過我比對之後,openssh-server其實都有支援,因此在wireshark看起來也都能正常運作,只是不曉得為何給了新key後就斷了。

LogLevelINFO等級調整成VERBOSE  比較好查修   
LogLevel VERBOSE            

 cat /var/log/audit/audit.log | grep 192.168.18.12

你可以在sshd_config,告訴它說你只想使用哪些加密方式,可以指定CiphersMACs這些。至於HostKeyAlgorithmsKexAlgorithms我測試在新版(OpenSSH 8.x是不支援的)


另外,你在測試的時候可以用ssh -vv來查看在交握過程中出了什麼問題 (我的設備太舊不支援這個參數)

1 則留言:

  1. 你好:
    http://tiserle.blogspot.com/search/label/874
    關於這個貼文,能請教一下嗎?

    回覆刪除