SFTPを実行できません:128「SFTPサーバーが稼働していますか?」を返します。

SFTPを実行できません:128「SFTPサーバーが稼働していますか?」を返します。

EC2インスタンス(Amazon Linux)(同じユーザー、同じシステム、同じ証明書)を使用してSSH経由で接続できますが、sftpを使用できなくなりました。

以前はWinScpを介してSFTPにログインしていました(私のWindows 7ボックスを介して)、今は「終了コード128、sftpが実行中です」と表示され、エラーログには「sftpのサブシステム要求」のみが表示されます。

どのように動作させることができますか?

デバッグは以下を提供します。

    debug1: session_open: channel 0
debug1: session_open: session 0: link with channel 0
debug1: server_input_channel_open: confirm session
debug1: server_input_channel_req: channel 0 request [email protected] reply 0
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req [email protected]
debug1: server_input_channel_req: channel 0 request [email protected] reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req [email protected]
debug1: temporarily_use_uid: 222/500 (e=222/500)
debug1: restore_uid: (unprivileged)
debug2: fd 8 setting O_NONBLOCK
debug1: channel 1: new [auth socket]
debug1: server_input_channel_req: channel 0 request subsystem reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req subsystem
subsystem request for sftp
debug1: subsystem: exec() /usr/libexec/openssh/sftp-server
debug2: fd 5 setting TCP_NODELAY
debug2: fd 11 setting O_NONBLOCK
debug2: fd 10 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 10940
debug1: session_exit_message: session 0 channel 0 pid 10940
debug2: channel 0: request exit-signal confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 11 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug2: channel 0: rcvd close
debug2: channel 0: is dead
debug2: channel 0: gc: notify user
debug1: session_by_channel: session 0 channel 0
debug1: session_close_by_channel: channel 0 child 0
debug1: session_close: session 0 pid 0
debug2: channel 0: gc: user detached
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: server-session, nchannels 2
Connection closed by 1.2.3.4
debug1: channel 1: free: auth socket, nchannels 1
debug1: do_cleanup
debug1: temporarily_use_uid: 222/500 (e=222/500)
debug1: restore_uid: (unprivileged)
Transferred: sent 2472, received 2224 bytes
Closing connection to 1.2.3.4 port 42647
debug1: PAM: cleanup
debug1: PAM: closing session
debug1: PAM: deleting credentials

更新:問題は、.bashrcを編集してstdoutに何かを出力することです。 sftpはユーザーのために新しいシェルを起動し、それが好きではないので、終了コード128で失敗します。

ベストアンサー1

Subsystem sftp <path>sshd設定を見てください/etc/ssh/sshd_config<path>SFTPサーバーを指します(パスはさまざまですが、通常はで終わりますopenssh/sftp-server)。サーバーが実行可能であることを確認してください。

$grep sftp /etc/ssh/sshd_config
サブシステム sftp /usr/lib/openssh/sftp-server

$/usr/lib/openssh/sftp-server-h
使用法:sftp-server [-ehR] [-f log_facility] [-l log_level] [-u umask]

代替ポートでデバッグモードでsshdを実行してみてください。

#sshd-rddp 1234

サブシステム要求が失敗した正確な理由を表示する必要があります。

おすすめ記事