Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

如何檢查 CentOS 6 SSH 支援的 Cipher / 協定、設定兼容參數、以及安全升級 OpenSSH

Posted on 2025-11-192025-11-19 by Rico

當我們從新版 Linux(如 Ubuntu 22.04 / 24.04)連線到 CentOS 6 時,常會因為 OpenSSH 過舊而發生連線錯誤,例如:

  • no matching host key type found
  • no matching cipher found
  • Unable to negotiate with x.x.x.x: no matching key exchange method
  • 甚至完全無法 SSH 連線

造成原因很簡單:
👉 CentOS 6 的 OpenSSH 版本嚴重過時(OpenSSH_5.x),只支援舊算法。

這篇文章分成三個部分,協助你安全、有效率地處理 CentOS 6 連線問題:


🟦 1. 如何確認 CentOS 6 支援哪些 Cipher / KEX / HostKey

即使 SSH 連不上,你仍可以在本地查詢目標主機支援的協定:

方法一:使用 ssh -vvv 顯示完整交涉資訊(最簡單)

ssh -vvv user@centos6-ip

重點段落:

  • kex: server->client cipher: ...
  • kex: server->client mac: ...
  • offer: ssh-rsa,ssh-dss
  • Supported KEX algorithms: …

這裡就可以看到 CentOS 6 提供的:

  • Host Key: ssh-rsa / ssh-dss
  • Cipher: aes128-cbc, 3des-cbc
  • Kex: diffie-hellman-group1-sha1

方法二:直接查詢 SSHD 設定檔

登入 CentOS 6 後:

cat /etc/ssh/sshd_config

常見舊參數:

Protocol 2
Ciphers aes128-cbc,3des-cbc,aes256-cbc
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
KexAlgorithms diffie-hellman-group1-sha1

你會發現所有演算法都是 CBC、Group1、DSA — 都是現代 Linux 已停用的。


方法三:手動測試遠端 cipher(進階)

ssh -oCiphers=none user@centos6-ip

SSH 會告訴你:

no matching cipher found. Their offer: aes128-cbc,aes256-cbc,3des-cbc

讓你直接知道對方只有這些舊的 CBC cipher。


🟦 2. 提供最安全可行的「兼容參數」讓新版 Ubuntu 能連上 CentOS 6

以下是最安全、最常見的兼容組合(依序逐步放寬)。


✔️ 最低限度(只允許舊 RSA)

ssh \
  -oHostKeyAlgorithms=+ssh-rsa \
  -oPubkeyAcceptedAlgorithms=+ssh-rsa \
  user@ip

✔️ 若還是出錯,加上舊 KEX (Group1)

ssh \
  -oHostKeyAlgorithms=+ssh-rsa \
  -oPubkeyAcceptedAlgorithms=+ssh-rsa \
  -oKexAlgorithms=+diffie-hellman-group1-sha1 \
  user@ip

✔️ 再不行,加上 CBC Cipher(CentOS 6 最常用)

ssh \
  -oHostKeyAlgorithms=+ssh-rsa \
  -oPubkeyAcceptedAlgorithms=+ssh-rsa \
  -oKexAlgorithms=+diffie-hellman-group1-sha1 \
  -oCiphers=+aes128-cbc \
  user@ip

aes128-cbc 是最輕量且較不危險的 CBC。


✔️ 必要時(極舊 DSA)

ssh \
  -oHostKeyAlgorithms=+ssh-dss \
  -oPubkeyAcceptedAlgorithms=+ssh-dss \
  user@ip

⚠️ 這是最後手段,因為 ssh-dss 完全不安全。


🟦 3. 如何在不破壞 CentOS 6 的前提下安全升級 OpenSSH(強烈建議)

CentOS 6 的 OpenSSH 太舊,不支援現代算法,因此最佳解是 升級 OpenSSH(不影響既有 SSH 服務)。

方法如下:


✔️ 方式 A:並存新版 OpenSSH(不覆蓋系統版本)—最安全

  1. 安裝 EPEL + 編譯工具:
yum groupinstall "Development Tools"
yum install pam-devel zlib-devel openssl-devel
  1. 下載最新 OpenSSH:
wget https://openbsd.mirror…/openssh-9.x.tar.gz
tar -xvf openssh-9.x.tar.gz
cd openssh-9.x
  1. 指定安裝到新路徑,避免覆蓋系統:
./configure --prefix=/opt/openssh9 --sysconfdir=/opt/openssh9/etc
make
make install
  1. 啟動新版 SSHD(使用不同 port,例如 2222):

編輯:

/opt/openssh9/etc/sshd_config

加入:

Port 2222
UsePAM yes
PasswordAuthentication yes

啟動:

/opt/openssh9/sbin/sshd
  1. 測試成功後再決定是否切換取代舊版

✔️ 方式 B:使用第三方 Repository(風險較高)

例如 SirLawrence repo,但可能引入不相容 module,因此較不推薦。


✔️ 方式 C:封裝為 RPM(最乾淨,但較複雜)

將新版 OpenSSH 重新打包成可安裝 RPM。


🟦 最後建議

  • ❗ CentOS 6 已 EOL,安全風險極高。
  • ✔️ 若能升級 OS,是最佳解。
  • ✔️ 若不能升級,至少升級 OpenSSH。
  • ✔️ 若不能升級 OpenSSH,就使用本文的兼容參數連線,但只建議短期使用。

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme