sftp -o
akzeptiert ssh_option
( Quelle ).
ssh_config
sagt, dass dies Cipher
für das ssh-Protokoll v1 ist (das Sie niemals verwenden sollten) und Ciphers
für das ssh-Protokoll v2.
Ich habe ein Problem, bei dem ein Server auf RHEL 6.5 aktualisiert wurde, und wir haben Skripts für eine RHEL 5.9-Installation automatisiert, die über Sftp- und SSH-Befehle eine Verbindung herstellt.
Nun unterstützt der neue Server nur die Verschlüsselungscodes aes128-ctr, aes192-ctr und aes256-ctr.
Ich konnte die SSH-Befehle aktualisieren, um die Option -c mit aes256-ctr zu verwenden. Dies funktionierte:
ssh -c aes256-ctr $ $
Wenn ich jedoch versucht habe, das Äquivalent für sftp auszuführen:
sftp -oCipher=aes256-ctr $ <<< $'get /home/me/* me/'
Ich erhalte die Fehlermeldung, dass der Client nicht dieselben Verschlüsselungen wie der Server unterstützt:
Es wurde 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 kann ich dieses Problem beheben, damit ich mich mit Sftp verbinden kann, ohne Änderungen am Client vornehmen zu müssen?
Die Cipher
Direktive bezieht sich auf die SSH-Version 1 (die heutzutage nicht verwendet wird).
Verwenden Sie für SSH Version 2 die Ciphers
:
sftp -oCiphers=aes256-ctr
Siehe ssh_config
Manpage .
Beachten Sie jedoch, dass sftp
der -c
Switch auch den Switch unterstützt . Es besteht also keine Notwendigkeit, die -o
.
Siehe die sftp
Manpage :
-c cipher
Wählt die Verschlüsselung für die Verschlüsselung der Datenübertragung aus.
Diese Option wird direkt an ssh (1) übergeben .
Die Option wird seit OpenSSH 5.4 unterstützt . Die Änderung wird als "Unterstützung der meisten Kommandozeilenargumente von scp (1) in sftp (1) " getarnt .
Beachten Sie, dass das Befehlszeilenargument in -c
erster Linie der Ciphers
Direktive entspricht (während es auf die zurückgreifen kann Cipher
). Zitat aus der ssh
Manpage :
-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 der Protokollversion 2cipher_spec
handelt es sich um eine durch Kommas getrennte Liste von Chiffren, die in der bevorzugten Reihenfolge aufgeführt sind. Weitere Informationen finden Sie unter demCiphers
Schlüsselwort in ssh_config (5) .