sftp の暗号不一致の問題を修正するにはどうすればよいですか?

sftp の暗号不一致の問題を修正するにはどうすればよいですか?

サーバーが RHEL 6.5 にアップグレードされ、RHEL 5.9 インストールで sftp および ssh コマンドを介して接続する自動化された bash スクリプトがあるという問題が発生しています。

現在、新しいサーバーは暗号 aes128-ctr、aes192-ctr、および aes256-ctr のみをサポートしています。

aes256-ctr で -c オプションを使用するように ssh コマンドを更新することができ、これが機能しました。

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

しかし、sftp で同等のことをしようとしたところ、

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

クライアントがサーバーと同じ暗号をサポートしていないというエラーが表示されます:

一致する暗号が見つかりません: クライアント arcfour256、aes128-cbc、3des-cbc、blowfish-cbc、cast128-cbc、arcfour、aes192-cbc、aes256-cbc サーバー aes128-ctr、aes192-ctr、aes256-ctr

これらの ssh コマンドと sftp コマンドは同じ RHEL 5.9 ボックス上で実行されるのですが、なぜこれが ssh では機能して sftp では機能しないのか疑問に思います。

また、クライアント側を変更せずに sftp を使用して接続できるようにするには、どうすればこれを修正できますか?

答え1

このCipherディレクティブは SSH バージョン 1 (現在は使用されていません) 用です。

SSH バージョン 2 の場合は、次を使用しますCiphers

sftp -oCiphers=aes256-ctr

を参照してくださいssh_configマニュアルページ


sftpただし、 もスイッチをサポートしていることに注意してください-c。したがって、 を使用する必要はありません-o

を参照してくださいsftpマニュアルページ:

-c cipher

データ転送の暗号化に使用する暗号を選択します。
このオプションは直接渡されますssh(1)

このオプションは、オープンSSH5.4変化は、「sftp(1) で scp(1) のコマンドライン引数のほとんどをサポートする「」。


コマンドライン引数は-c主にディレクティブと同等であることに注意してくださいCiphers( にフォールバックすることもできますCipher)。sshマニュアルページ:

-c cipher_spec

セッションを暗号化するための暗号仕様を選択します。
プロトコルバージョン1では、単一の暗号を指定できます。サポートされている値は、「3des」、「blowfish」、「des」です。プロトコルバージョン2の場合、優先cipher_spec順位に従ってコンマで区切られた暗号のリストです。Ciphersssh_config(5)詳細については。

関連情報