Wie behebe ich ein Chiffre-Mismatch-Problem mit sftp?

4

Ich stoße auf ein Problem, bei dem ein Server auf RHEL 6.5 aktualisiert wurde, und wir haben automatisierte Bash-Skripte für eine RHEL 5.9-Installation, die über sftp- und ssh-Befehle eine Verbindung herstellt.

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

Ich konnte die ssh-Befehle aktualisieren, um die Option -c mit aes256-ctr zu verwenden, und dies funktionierte:

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

Als ich jedoch versuchte, das Äquivalent für sftp zu tun:

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

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

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 Befehle ssh und sftp werden auf derselben RHEL 5.9-Box ausgeführt. Ich frage mich, warum dies für ssh und nicht für sftp funktioniert.

Wie behebe ich das, damit ich eine Verbindung über SFTP ohne clientseitige Änderungen herstellen kann?

Hazok
quelle

Antworten:

8

Die CipherDirektive gilt für SSH Version 1 (die derzeit nicht verwendet wird).

Verwenden Sie für SSH Version 2 Folgendes Ciphers:

sftp -oCiphers=aes256-ctr

Siehe die ssh_configManpage .


Beachten Sie jedoch, dass sftpder -cSchalter auch unterstützt. Es ist also nicht erforderlich, das zu verwenden -o.

Siehe die sftpManpage :

-c cipher

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

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


Beachten Sie, dass das Befehlszeilenargument in -cerster Linie der CiphersDirektive entspricht (während es auf die zurückgreifen kann Cipher). Zitat aus der sshManpage :

-c cipher_spec

Wählt die Verschlüsselungsspezifikation zum Verschlüsseln der Sitzung aus.
Protokollversion 1 ermöglicht die Angabe einer einzelnen Chiffre. Die unterstützten Werte sind "3des", "blowfish" und "des". Bei Protokollversion 2 cipher_spechandelt es sich um eine durch Kommas getrennte Liste von Chiffren, die in der Reihenfolge ihrer Präferenz aufgeführt sind. Weitere Informationen finden Sie im CiphersSchlüsselwort in ssh_config (5) .

Martin Prikryl
quelle