R筋

プログラミングと時々育児

SFTPサーバ構築時の注意点

先日SFTPサーバを構築したのだが、色々と罠にハマりなかなかに一苦労だった。
ただ全てネットの先の諸先輩方の力で解決策が示されており、なんとかなるに至ったため、感謝を込めて、ハマりどころと解決してくれたページを紹介したい。

 

・「error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory」
参考になったサイト:https://tksm.org/wp/archives/3806

tksm.org


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

tksm.org


4. SFTP用ディレクトリの作成と権限変更の
ディレクトリ所有者が root で且つ 他のユーザに書き込みさせない 設定が必要」
SFTPでログインするディレクトリは、「drwxr-xr-x(755) root:root」という状態であるということが必要ということ。
ログインディレクトリより上も含めて、755にしないといけない。これは777でもだめで、所有者以外が書き込みできないフォルダ
である必要がある。

 

・複数のユーザで同じディレクトリにログインできるようにしたい
参考になったサイト:https://qiita.com/fallout/items/b702524f2cc0909d92f9

qiita.com


対象のユーザを同じグループに所属させた上で、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に設定するということになる。