![sftp クライアントに暗号を追加することは可能ですか?](https://rvso.com/image/1451234/sftp%20%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AB%E6%9A%97%E5%8F%B7%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
サーバーが RHEL 6.5 にアップグレードされ、RHEL 5.9 インストールに sftp および ssh コマンドを介して接続する自動化スクリプトがあるという問題が発生しています。
現在、新しいサーバーは暗号 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
答え2
このCipher
ディレクティブは SSH バージョン 1 (現在は使用されていません) 用です。
SSH バージョン 2 の場合は、次を使用しますCiphers
。
sftp -oCiphers=aes256-ctr
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
順位に従ってコンマで区切られた暗号のリストです。Ciphers
ssh_config(5)詳細については。