Při pokusu o vzdálené připojení k serveru pomocí SSH může uživatel narazit na chybovou zprávu „Unable to negotiate with IP address: no matching cipher found“. Tento problém obvykle nastává, když SSH klient a server nemají žádný společný šifrovací algoritmus, který by obě strany podporovaly. V tomto článku se zaměříme na konkrétní kroky pro vyřešení této chyby na operačním systému CentOS 7.
Příčina problému
SSH (Secure Shell) používá šifrovací algoritmy k zabezpečení komunikace mezi klientem a serverem. Když klient iniciuje SSH spojení, dojde k výměně seznamu podporovaných šifrovacích algoritmů. Chyba „no matching cipher found“ naznačuje, že mezi seznamem šifer klienta a servera neexistuje žádná shoda.
Řešení problému
Krok 1: Identifikace podporovaných šifer na serveru
Nejprve je třeba zjistit, které šifrovací algoritmy jsou na serveru podporovány. Toho lze dosáhnout spuštěním následujícího příkazu na serveru:
ssh -Q cipher
Tento příkaz vypíše seznam šifer, které SSH server podporuje.
Krok 2: Identifikace podporovaných šifer na klientovi
Podobně je třeba zjistit, které šifrovací algoritmy podporuje SSH klient. Na klientovi spusťte stejný příkaz:
ssh -Q cipher
Krok 3: Upravení konfigurace SSH serveru
Po identifikaci šifer, které jsou podporovány jak na serveru, tak na klientovi, je třeba upravit konfigurační soubor SSH serveru na CentOS 7, aby byla zajištěna podpora alespoň jednoho společného algoritmu. Upravte soubor /etc/ssh/sshd_config
na serveru a explicitně přidejte podporované šifry. Například:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
Přidejte šifry, které jsou podporovány oběma stranami. Po změně konfigurace je nutné restartovat SSH službu:
systemctl restart sshd
Krok 4: Upravení konfigurace SSH klienta (nepovinné)
Pokud změna na straně serveru není možná nebo preferujete změnu na straně klienta, můžete specifikovat šifrovací algoritmus při spouštění SSH příkazu pomocí volby -c
. Například:
ssh -c aes256-ctr user@server_address
Tímto způsobem můžete explicitně určit, který šifrovací algoritmus má být použit pro dané spojení.
Chyba „Unable to negotiate with IP address: no matching cipher found“ při SSH připojení je obvykle způsobena nesouladem v podporovaných šifrovacích algoritmech mezi klientem a serverem. Řešením je identifikace a konfigurace podporovaných šifer na obou stranách. V tomto článku jsme prošli kroky, které je třeba provést pro vyřešení tohoto problému na systému CentOS 7.