GNU/Linux >> Linux の 問題 >  >> Linux

SFTP エラー 受信メッセージが長すぎます

次のディレクティブを /etc/ssh/sshd_config に追加して、内部 sftp サーバーを使用するようにサーバーを構成します。 :

Subsystem sftp internal-sftp

そうすれば、ユーザー シェルを使用して sftp サーバー プログラムを起動することはありません。


「受信メッセージが長すぎます」は、SFTP クライアントが SFTP サーバーから不正なデータを受信したことを意味します。一般的な理由は、サーバー上のシェル起動スクリプト (.bashrc、.profile、.cshrc など) が何らかの出力を生成しており、SFTP クライアントがその出力を SFTP メッセージとして解析しようとしていることです。これは、次のコマンドを実行して確認できます:

ssh [email protected] 'echo hello'

これが「hello」以外の出力を生成する場合、その出力はおそらく SFTP または SCP の適切な動作を妨げます。

サルバの回答のように、SSH サーバーを SFTP セッションに internal-sftp を使用するように設定することで、これを回避できます。これにより、SFTP セッション用のシェルの起動が回避されます。これは、SCP や、ssh を介して実行される git や rsync などの他のプログラムでは役に立ちません。

これを修正する他の方法は、シェルの起動コマンドを実行し、何が出力を生成しているかを把握し、非対話型 SSH セッション中にそれが発生しないようにすることです。ヒントの 1 つは、出力を生成するコマンドを実行する前に TTY をテストすることです:

if [ -t 1 ]; then
    # standard output is a TTY
    ...
fi

Linux
  1. Mysqlエラーの解決:開いているファイルが多すぎます

  2. Ubuntu –引数リストが長すぎますか?

  3. Gitが実際のエラーをスローした場合にのみメールCron出力?

  1. MySQLの接続エラーが多すぎます

  2. 「引数リストが長すぎます」というエラーでディレクトリからファイルを削除できない

  3. コマンドが長くなりすぎると、コマンドライン自体が上書きされます

  1. rm、cp、mv コマンドの引数リストが長すぎるというエラー

  2. gcsfuse 入出力エラー

  3. ubuntu 入出力エラー