SSHを使用して別のユーザーとしてログイン - スクリプトを実行して次へ

SSHを使用して別のユーザーとしてログイン - スクリプトを実行して次へ

リストに指定されたサーバーで一部のスクリプトを実行しようとしていますが、指定されたユーザーとしてログインするのに問題があります。これを明確にするために、user0としてserver1にログインし、このスクリプトを実行します。しかし、スクリプトは私の user0 を user1 に切り替え、リストで指定されたサーバーに対して user1 で次の行を実行します。

[user0@server1 home]$ /home/user0/my_script.sh

#!/bin/bash
sudo su - user1
#SERV=(serv1 serv2 serv3)

for HOST in ${SERV[@]}; do
   ssh -t user1@${SERV} 'cd /opt/directory1/directory2/var; sudo /opt/custom/scripts/script.sh'

    if [[ $?=0 ]]; then
        echo "Commnad on $SERV executed!"
     else
        echo "$SERV do not exist!"
    fi
done

問題は、ユーザーをスクリプトを実行しているユーザーからsshを実行するユーザーに切り替えることです(user1にはrsaキーが含まれています)。ただし、スクリプトは常にuser1のパスワードを要求します。

答え1

user0がパスワードを要求せずにuser1@ $ {SERV}をSSHに接続できるようにするには、user1はuser0を信頼する必要があります。つまり、user0の公開鍵をuser1のauthorized_keysファイルに追加する必要があります。以下を実行してこれを実行できます。

ssh-copy-id user1@${SERV}

各サーバーに対して、user0にuser1アクセス権があることを望みます。

関連情報