信頼できる一部のユーザーが自分のサーバーにファイルを scp で送信できるようにしたいのですが (特定のユーザーに対して)、これらのユーザーにホームも ssh ログインも与えたくありません。
これを実現するために作成する必要があるユーザー/グループの正しい設定を理解するのに問題があります。
例を挙げてみましょう。
以下を有する:
MyUser@MyServer
MyUser
グループに属するMyGroup
- MyUserのホームは、
/home/MyUser
SFTPGuy1@OtherBox1
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 MyServer
MyUser のホームに移動できるようになると予想されます...
まあ、そうではありません... 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 no
StrictModes 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
出力を投稿する