複数のユーザーを 1 つのホームに ssh 接続する

複数のユーザーを 1 つのホームに ssh 接続する

信頼できる一部のユーザーが自分のサーバーにファイルを scp で送信できるようにしたいのですが (特定のユーザーに対して)、これらのユーザーにホームも ssh ログインも与えたくありません。

これを実現するために作成する必要があるユーザー/グループの正しい設定を理解するのに問題があります。

例を挙げてみましょう。

以下を有する:

  1. MyUser@MyServer
  2. MyUserグループに属するMyGroup
  3. MyUserのホームは、/home/MyUser
  4. SFTPGuy1@OtherBox1
  5. SFTPGuy2@OtherBox2

彼らは私に彼らの「」を与えid_dsa.pub、私はそれを私のauthorized_keys

だったら私のサーバーではこんなことをするだろう

useradd -d /home/MyUser -s /bin/false SFTPGuy1(他も同様です。)

そして最後にuseradd -G MyGroup SFTPGuy1(そしてまた、もう一人の男のために)

そうなると、SFTPGuys はsftp -o IdentityFile=id_dsa MyServerMyUser のホームに移動できるようになると予想されます...

まあ、そうではありません... SFTP はパスワードを要求し続けます。

何が欠けているか誰か指摘してもらえますか?

本当にありがとう。

f.

[編集:メッサStackOverflow で、authorized_keys ファイルが他のユーザー (MyGroup のメンバー) に読み取り可能かどうか尋ねられました。これは興味深い点です。これが私の答えです:

まあ、そうではありませんでした (700 でした)。しかし、.ssh ディレクトリと認証ファイルの権限を 750 に変更しましたが、それでも効果はありませんでした。私のホーム ディレクトリ ( /home/MyUser) もグループで読み取り可能であることは言及する価値があると思います。ほとんどのディレクトリは 750 で、ファイルをドロップする特定のフォルダーは 770 です。

しかし、認証ファイルについては、 のローカルユーザーによって認証が実行されると思いますがMyServer、そうではありませんか? もしそうなら、他のユーザーがそれを読み取る必要性がわかりません... まあ、ただ疑問に思っただけです。]

答え1

これを試す前に、最後まで読んでください。

2 人のユーザーを作成し、同じグループに入れて同じホーム ディレクトリを与えることで、必要な操作を実行できます。次に、共有ホームにキーを含む ~/.ssh/authorized_keys ファイルを作成します。

アカウントにはシェルが必要なので、usermod -L LOGINこれを使用してロックし、対話型ログインを防止します。

~/.ssh ディレクトリの権限は g:rx である必要があり、~/.ssh/authorized_keys は g:r である必要があります。

chmod g+rx ~/.ssh
chmod g+r ~/.ssh/authorized_keys

こうすると、sshdはディレクトリが最大でもg:r--、ファイルがg:---であると想定するため、エラーメッセージが表示される。

Authentication refused: bad ownership or modes for file /home/test/.ssh/authorized_keys

この計画を成功させるには、sshd の組み込みチェックを破るデフォルトから編集し /etc/sshd_configて設定します。変更を有効にするには、sshd を再起動します。StrictModes noStrictModes yes

希望どおりに動作するはずです。残念ながら、sshd の安全性が失われているため、後日変更を加えると、システムが完全に無防備な状態になる可能性があります。

より安全に行うには、上記の変更は行わないでください。

同じグループに 2 つのユーザー アカウントを作成し、それらの ~/.ssh/authorised_keys を設定します。各ホーム ディレクトリから、データを保存したい場所へのリンクを作成します。

ln -s -n /path/to/stuff content

ユーザーがホーム ディレクトリに書き込むことができないように、ホーム ディレクトリの権限をロックダウンします。

アカウントが対話的にログインするのを停止する

usermod -L LOGIN

グループ アクセスを許可するには、/path/to/stuff の権限を変更します。

答え2

ファイルのドロップボックスとして機能するユーザー ID へのアクセスを提供したいようです。承認されたキー ファイルでユーザーが実行できる操作を制限できます。

サーバー上のこのユーザー ID にのみ接続するようにしたい場合は、正しいユーザー ID に直接マップする .ssh/config ファイルを提供できます。

答え3

この質問に対する答えは -sftp 経由のアップロードのみを許可するユーザー アカウントを作成するにはどうすればよいですか?- というパッケージを推奨しますscponly のみ- 使ったことはないですが、あなたが望むことはできそうです。

答え4

ログファイルを調べると役立つかもしれません。ログインに失敗した場合は、次の内容を入力してください。

tail -n 50 /var/log/secure

出力を投稿する

関連情報