使用 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 能够在不提示输入密码的情况下执行 ssh user1@${SERV},那么您需要 user1 信任 user0。也就是说,需要将user0的公钥添加到user1的authorized_keys文件中。你可以通过运行来做到这一点

ssh-copy-id user1@${SERV}

对于您希望 user0 具有 user1 访问权限的每台服务器。

相关内容