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?
Antworten:
Die
Cipher
Direktive gilt für SSH Version 1 (die derzeit nicht verwendet wird).Verwenden Sie für SSH Version 2 Folgendes
Ciphers
:Siehe die
ssh_config
Manpage .Beachten Sie jedoch, dass
sftp
der-c
Schalter auch unterstützt. Es ist also nicht erforderlich, das zu verwenden-o
.Siehe die
sftp
Manpage :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
-c
erster Linie derCiphers
Direktive entspricht (während es auf die zurückgreifen kannCipher
). Zitat aus derssh
Manpage :quelle