⚙️

sftp を叩いたら Connection closed Connection closed と出た時の解決策

に公開

発生した問題

研究室のPCから,sftp を用いてファイルを落とそうとしたときに,このようなエラーが発生.
ssh は普通につながるし,他のリモートサーバから sftp することは可能であった.

Nafmo@desktop-pc:~$ sftp lab
Connection closed.
Connection closed

OS: Ubuntu 22.04.5 LTS (remote)

解決策

/etc/ssh/sshd_config の中にある Subsystem sftp /usr/libexec/sftp-server のパスを /usr/lib/openssh/sftp-server へ 書き換える

/etc/ssh/sshd_config
# override default of no subsystems
# Subsystem   sftp    /usr/libexec/sftp-server # <- NotFound
Subsystem sftp /usr/lib/openssh/sftp-server

設定を読み込ませるための再起動を忘れずに.

sudo systemctl restart ssh

※もちろん原因が他にある場合も想定されます.あくまでこれで解決する場合があるかも?位に思っていただければと思います.

原因

sshd_config が指定した sftp-server のパスの先に実態が存在しなかった.それは無理ですよね...

解決までの試行錯誤記録(おまけ)

sftp -v lab をしたとき,Exit status 127 と出た.

参考文献,2番目の記事でこんな記載を見つけたことから,パス周りを怪しみました.

Exit status 127 is command not found.

sshd_config を眺めた際,/usr/libexec/sftp-server がないことに気づきました.その代わりとなる,sftp-server の位置を探して解決できました.やったね!

細かな部分はわかっていないので,補足など是非コメントいただけると嬉しいです.

解決までに読んだ文献

直接役立ってないものもあるかもです.
https://ameblo.jp/yukozutakeshizu/entry-12443078874.html
https://askubuntu.com/questions/641045/connection-closed-when-trying-to-connect-to-sftp-server-match-group-issue
https://serverfault.com/questions/660160/difference-between-openssh-internal-sftp-and-sftp-server

Discussion