Wie behebe ich ein Verschlüsselungs-Mismatch-Problem mit SFTP?

Wie behebe ich ein Verschlüsselungs-Mismatch-Problem mit SFTP?

Ich stoße auf ein Problem, bei dem ein Server auf RHEL 6.5 aktualisiert wurde und wir über automatisierte Bash-Skripte auf einer RHEL 5.9-Installation verfügen, die eine Verbindung über SFTP- und SSH-Befehle herstellt.

Jetzt unterstützt der neue Server nur die Chiffren aes128-ctr, aes192-ctr und aes256-ctr.

Ich konnte die SSH-Befehle aktualisieren, um die Option -c mit aes256-ctr zu verwenden, und das hat funktioniert:

ssh -c aes256-ctr ${remote_host} ${my_command}

Als ich jedoch versuchte, dasselbe für SFTP zu tun:

sftp -oCipher=aes256-ctr ${remote_host} <<< $'get /home/me/* me/'

Ich erhalte die Fehlermeldung, dass der Client nicht dieselben Chiffren unterstützt wie der Server:

keine passende Chiffre gefunden: Client arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc Server aes128-ctr,aes192-ctr,aes256-ctr

Diese SSH- und SFTP-Befehle werden auf derselben RHEL 5.9-Box ausgeführt, daher frage ich mich, warum dies für SSH, aber nicht für SFTP funktioniert?

Und wie behebe ich das, sodass ich ohne Änderungen auf der Clientseite eine Verbindung per SFTP herstellen kann?

Antwort1

Die CipherAnweisung gilt für SSH Version 1 (die heutzutage nicht mehr verwendet wird).

Verwenden Sie für SSH Version 2 Ciphers:

sftp -oCiphers=aes256-ctr

Sehen Sie sich diessh_configmanpage.


Beachten Sie jedoch, dass sftpder Schalter ebenfalls unterstützt wird -c. Es besteht also keine Notwendigkeit, den zu verwenden -o.

Sehen Sie sich diesftpmanpage:

-c cipher

Wählt die Chiffre aus, die zum Verschlüsseln der Datenübertragungen verwendet werden soll.
Diese Option wird direkt anssh(1).

Die Option wird unterstützt seitOpenSSH 5.4Die Änderung wird getarnt als"Unterstützt die meisten Kommandozeilenargumente von scp(1) in sftp(1)".


Beachten Sie, dass das Kommandozeilenargument -cin erster Linie ein Äquivalent zur CiphersDirektive ist (es kann aber auch auf die zurückgegriffen werden Cipher). Zitat aus demsshmanpage:

-c cipher_spec

Wählt die Verschlüsselungsspezifikation für die Verschlüsselung der Sitzung aus.
Protokollversion 1 ermöglicht die Angabe einer einzelnen Verschlüsselung. Die unterstützten Werte sind „3des“, „blowfish“ und „des“. Für Protokollversion 2 cipher_specist dies eine durch Kommas getrennte Liste von Verschlüsselungen in der Reihenfolge ihrer Präferenz. Siehe das CiphersSchlüsselwort inssh_config(5)für mehr Informationen.

verwandte Informationen