ローカル設定を使用したSSHログイン後に自動的にrootに切り替える

ローカル設定を使用したSSHログイン後に自動的にrootに切り替える

場合によっては、複数のサーバーにログインして root に切り替える必要があります。
今私のSSH設定は次のようになります

  Host *
    User xxx
    Port 32200

  Host hostnamexxx
    HostName xxx.xxx.xxx.xxx
    IdentityFile /root/.ssh/id_rsa

サーバーにのみログインし、パスワードを使用して自動的にrootに切り替えるようにローカル(ssh)設定を変更できますか?
しかし、暗号化されていないファイルにパスワードを保存することは安全性が低いように見えます。

ベストアンサー1

ログイン後、rootとして「切り替え」する代わりにrootとしてログインできますssh

設定ファイルに次の行を追加できますUser root

  Host hostnamexxx
    HostName xxx.xxx.xxx.xxx
    User root
    IdentityFile /root/.ssh/id_rsa

これは、ホスト名xxxにアクセスしようとすると、sshrootとして直接ログインしようとすることを意味します。これは、次のsshコマンドを実行するのと同じです。

$ ssh -i /root/.ssh/id_rsa -l root hostnamexxx

ただし、ファイルは保護されており、rootとしてのみ読み取ることができるため、ファイルは使用できず、ターゲットホストに/root/.ssh/id_rsaパスワードを要求します。root

$ ssh -i /root/.ssh/id_rsa -l root hostnamexxx
Warning: Identity file /root/.ssh/id_rsa not accessible: Permission denied.
Password:  

パスワードを入力すると、rootターゲットにrootとしてログインします。

パスワードを提供したくない場合(もちろん、権限があると仮定)から、rootホームフォルダにIDファイルをコピーし、所有者をユーザーに変更できます。/root/.ssh/id_rsasudoroot

$ sudo cp /root/.ssh/id_rsa $HOME/.ssh/root_id_rsa && sudo chown <your username> $HOME/.ssh/root_id_rsa

その後$HOME/.ssh/root_id_rsaで使用してくださいIdentityFile

おすすめ記事