web-dev-qa-db-ja.com

SSHエージェント転送とsuユーザーの混合-

サーバーにSSH接続した場合:

ssh root@<ip> -A

次に、これをリモートで行います。

ssh [email protected]
# Hi username! You've successfully authenticated

次に、これをリモートで:

su user -

次に、これをリモートで:

ssh [email protected]
# Permission denied (publickey).

ユーザーに直接SSH接続せずにこれを機能させるにはどうすればよいですか(頻繁に簡単に切り替える必要があるため)

ありがとう

1
Tallboy

これは予想通りです。何が起こっているのかというと、_ssh -A_すると、SSHエージェントにすでにロードされている証明書が、サーバーで開いたユーザーセッションで使用できるようになります。次に、suを使用してユーザーを他のユーザーに変更すると、その特権はセキュリティ関連の理由でターゲットユーザーに付与されません。代わりに通常やりたいことは

  1. _ssh -A user@ip_または
  2. サーバーに秘密鍵を置き、SSHで接続し、eval "$(ssh-agent)" && ssh-addを使用してそこに鍵をロードします。
1
l0b0