web-dev-qa-db-ja.com

SSHキーを使用して「Sudo su-username」でユーザーを切り替えます

Sudo su - usernameを使用して、同じLinuxマシン/サーバーで1人のユーザーから別のユーザーに切り替えることができるように、sshキーを使用しようとしています。

私がやりたいことは、1つのサーバーに複数のアカウントを持っていることです。これらのアカウントをpasswd -l usernameでロックし、同じマシン上で1人のユーザーから別のユーザーにssh-ingすることにより、SSHキーでのみアクセスを許可します。例:[user1@server]$ ssh user2@server

これを行うには、user1の公開鍵をauthorized_keysuser2ファイルにコピーしました。

しかし、私がやりたいもう1つのことは、sshキーを使用してSudo su - user2からuser1を実行できるようにすることです。これにより、パスワードプロンプトを回避できます。

例:[user1@server]$ Sudo su - user2

Sshd_configファイルを変更し、フィールドのコメントを外しました。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

しかし、それでもできません。

エージェントの転送に関してインターネットで見つけたものも試しましたが、何もしませんでした。

これを行う方法について誰かが私を助けたり、正しい方向に向けたりできますか?

8
Pier

SudoはSSHおよびsshd configとは関係ありません。

あなたが本当に欲しいのは、SSH公開鍵を使用するPAMモジュールです。全体のアイデアが少し奇妙に思われるので、私はあなたの理由が何であるかわかりませんが、まあ。 pam_ssh はこれを行うモジュールです。

4
kirelagin

Sudoをパスワードなしで別のユーザーに機能させるには、次の変更が必要です(スーパーユーザーアクセスで実行します)。

/ etc/sudoersを編集します

visudo

構成の変更

# Allow user to Sudo su as anyone without password
user    ALL=(ALL)       NOPASSWD: ALL
%group  ALL=(ALL)       NOPASSWD: ALL

# Allow user to become another user
user    ALL=(user2)    NOPASSWD: ALL
%group  ALL=(user2)    NOPASSWD: ALL

後者のSudo suで-user2は動作するはずです

唯一の障害は、Sudoグループに追加されるユーザーでした。

usermod -a -G Sudo user

上記の設定の例では、最初にユーザーを表示し、次にグループ別に表示しています。必要なのは2つのうちの1つだけです-

編集:

visudo

%group2    ALL=(ALL:ALL)    PASSWD: ALL
%group1    ALL=(ALL:ALL)    NOPASSWD: ALL

実行グループを追加

groupadd group1
groupadd group2

パスワードを必要とするユーザーのために

usermod -a -G group2 user1
usermod -a -G group2 user2
etc..

パスワードを必要としないユーザーの場合:

usermod -a -G group nuser1
usermod -a -G group nuser2
etc
4
Vahid