試行すると、ルックアップキーではないsudo ssh ...
ため、権限が拒否されました。しかし、まだ設定されているので、入って見てみてはいかがでしょうか?ssh
/root/.ssh
/home/me/.ssh
$HOME
/home/me
ssh
$HOME/.ssh
答え1
ssh
無視すると、$HOME
ユーザーデータベースに基づいてホームディレクトリがインポートされます。本物uid 1個(pw_dir
返された構造フィールドを使用getpwuid()
)
ssh
上記のようにファイルを書き込むことができることを考えると、そこにルート所有ファイルがあるため、そうしないことをお勧めしますknown_hosts
。/home/me/.ssh
常に認証プロキシを使用するsudo ssh -i ~/.ssh/id_rsa ...
か、認証プロキシを使用でき、認証プロキシへのソケットパスをルートに渡す必要があります。
sudo --preserve-env=SSH_AUTH_SOCK ssh ...
または
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" ssh ...
ssh
また、rootとして実行する必要がありますか? 1024以下のTCPポートからトンネルを作成したり、ローカルポート転送をバインドしたりできますか?リモートroot
ホストにあるかのようにログインできる場合は、これssh root@host
だけで十分です。
1実際のuidを0に保ちながら、実際のuidを元のuidに復元できます。
sudo perl -e '$<=getpwnam($ENV{SUDO_USER}); exec@ARGV' ssh ...
答え2
sudo
「他のユーザーとしてコマンドを実行する」()が許可されていますが、欠落しているman sudo
場合は「デフォルトのターゲットユーザー(通常はroot)」が使用されます。そのため、root
リモート側のアカウントを探すのです。