sudoで実行するときにsshが/ root / .sshでキーを見つけるのはなぜですか?

sudoで実行するときにsshが/ root / .sshでキーを見つけるのはなぜですか?

試行すると、ルックアップキーではないsudo ssh ...ため、権限が拒否されました。しかし、まだ設定されているので、入って見てみてはいかがでしょうか?ssh/root/.ssh/home/me/.ssh$HOME/home/messh$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 ...

おすすめ記事