管理できない理由で、チームは一部のシステムの非ユーザーシェルを介してユーザーアカウントを共有します。どちらもパスワードで保護された秘密鍵を共有ユーザーの〜/ .sshディレクトリに移動しました。通常、ログインしてssh-agent
セッションを開き、次のようにssh-add
パスワードで鍵を保護します。私たちの誰もがこのワークフローを気に入らず、それをより簡単にするよう努めています。
共有ユーザーのシェルを開くと自動的にパスワードの入力を求める方法はありますか?
sudo -u shared /bin/bash
# new shell opens
eval `ssh-agent -s`
ssh-add ~/.ssh/my_username_rsa
# enter passphrase and continue...
答え1
その後、追加するキーはsudoセッションを開始したユーザーによって異なりますか?たぶん環境SUDO_USER
変数が必要なのかもしれません。
shared
ユーザーのシェル起動ファイル(.bash_login
Bash.シェルをログインシェルとして起動するには使用する必要がありますsudo -i
)に、次の内容を入力します。
eval $(ssh-agent -s)
ssh-add ~/.ssh/${SUDO_USER}_rsa
でも
if [ "$SUDO_USER" = userthis ] ; then
echo do something for this user
elif...
fi
もちろん、これらの共有アカウントの欠点は、誰もが実際にお互いのキーを持つことです。キーは単一のユーザーIDに保持され、共有アカウントの他のユーザーを区別できるものがないためです。
ssh-agent
以前は通常のアカウントから始めて、sudo
sudoedシェルで利用できるかどうかわかりません。少なくとも、プロキシソケットの権限を変更する必要があると思います。これにより、同じアカウントの他のユーザーをコピーすることはできませんが、プロキシのキーを使用できます。
答え2
私はあなたのようになります:
eval $(ssh-agent -s)
ssh -A shared@localhost
これにより、共有ユーザーディレクトリに秘密鍵ファイルを配置する必要がなくなります。