SSHサーバーのルートフォルダの変更

SSHサーバーのルートフォルダの変更

似たような質問がいくつかありますが、同じではありません。デフォルトのフォルダーを変更したくありません。そのため、SSH 接続のルート フォルダーを設定したいと思います。つまり、クライアントがアクセスできる唯一のフォルダーは、私が設定したフォルダーです。クライアントだけがアクセスでき、を使用できないパスを設定したいと思いますcd ..

アクセス権と許可がないため、上位のフォルダーに移動することはできません。

編集: 私がやりたい最も重要なことは、他のデバイスが書き込みできるローカル サーバーを用意し、すべてのファイルにアクセスできないようにすることです。SSH よりも良い方法があれば教えてください。質問が下手で申し訳ありません。

ありがとう

答え1

ChrootDirectory該当ユーザー、一部のグループ、またはすべてのユーザーに対して sshd 構成を設定する必要がありますが、これは面倒です。

たとえば、新しいファイルを作成し、/etc/ssh/sshd_config.d/chroot_some_users.conf次の内容を入力します。

Match User myuser
     ChrootDirectory %h

これを複数のユーザーに対して使用する場合は、 を使用してMatch Group groupname、必要なすべてのユーザーをそのグループに追加します。

Include /etc/ssh/sshd_config.d/*.conf最近の Linux ディストリビューションでは、 にがあります/etc/ssh/sshd_config。古いディストリビューションでは、この行を自分で追加する必要がある場合があります。末尾に追加するだけです。すべて実行したら、 で確認しsshd -t、エラーが報告されない場合は、 で構成を再ロードしても安全ですsystemctl reload sshd.service

ユーザーは、myuserSSH 経由で自分のホーム ディレクトリをファイル システムのルートとして見ることになります。この chroot により、シェル バイナリと必要なライブラリをホーム ディレクトリで利用できるようにしない限り、ユーザーはそれらを表示できないため、SSH 経由でログインできないことに注意してください。ただし、ユーザーは SFTP を使用してファイルを転送したり、TCP ポートを転送したりすることはできます。

man sshd_config(完全に!)man sshd多くの重要かつ役立つ詳細を読んでください。

関連情報