先日SFTPサーバを構築したのだが、色々と罠にハマりなかなかに一苦労だった。
ただ全てネットの先の諸先輩方の力で解決策が示されており、なんとかなるに至ったため、感謝を込めて、ハマりどころと解決してくれたページを紹介したい。
・「error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory」
参考になったサイト:https://tksm.org/wp/archives/3806
sshd_configのMath句内で、ForceCommand internal-sftpを指定していたとしても、OSによっては、subsystemのsftp-serverが採用されてしまうそうだ。
そのためsubsystem internal-sftpの指定をしないといけない。
・「fatal: bad ownership or modes for chroot directory」
参考になったサイト:https://tksm.org/wp/archives/3806
4. SFTP用ディレクトリの作成と権限変更の
「ディレクトリ所有者が root で且つ 他のユーザに書き込みさせない 設定が必要」
SFTPでログインするディレクトリは、「drwxr-xr-x(755) root:root」という状態であるということが必要ということ。
ログインディレクトリより上も含めて、755にしないといけない。これは777でもだめで、所有者以外が書き込みできないフォルダ
である必要がある。
・複数のユーザで同じディレクトリにログインできるようにしたい
参考になったサイト:https://qiita.com/fallout/items/b702524f2cc0909d92f9
対象のユーザを同じグループに所属させた上で、sshd_configにMatch grop ○○と記載することで、複数ユーザが同じchrootDirecotryを
設定できる。
・SFTPユーザAは、書き込み可能、SFTPユーザBは参照のみのディレクトリを作りたい
参考になったサイト:https://ti-tomo-knowledge.hatenablog.com/entry/2018/08/17/010813
ti-tomo-knowledge.hatenablog.com
ログインディレクトリに対してログインユーザは書き込み権限がない。そのためログインディレクトリの下にディレクトリを作成し、
そのディレクトリでユーザAは書き込みできる、ユーザBは参照のみできるという設定を行う。
ユーザAをディレクトリの所有者として、パーミッションを755に設定するということになる。