Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BASH脚本以SSH方式连接到另一台服务器,并以用户身份运行命令_Bash_Ssh_Cpanel - Fatal编程技术网

BASH脚本以SSH方式连接到另一台服务器,并以用户身份运行命令

BASH脚本以SSH方式连接到另一台服务器,并以用户身份运行命令,bash,ssh,cpanel,Bash,Ssh,Cpanel,我在论坛和谷歌上读了很多书,但是我找不到解决这个问题的方法 基本上,我的脚本是在本地机器上运行的,然后用不同的用户名SSH连接到一个服务器上(在这里之前它一直工作),在这台机器上,我需要运行一些命令(它们不运行) 以下是代码中不起作用的部分: if [[ "${TYPE}" == "cPanel" ]]; then #Connect to the server with credentials defined earlier in the script - works prop

我在论坛和谷歌上读了很多书,但是我找不到解决这个问题的方法

基本上,我的脚本是在本地机器上运行的,然后用不同的用户名SSH连接到一个服务器上(在这里之前它一直工作),在这台机器上,我需要运行一些命令(它们不运行)

以下是代码中不起作用的部分:

if [[ "${TYPE}" == "cPanel" ]]; then

        #Connect to the server with credentials defined earlier in the script - works properly.
        ssh $USER@$HOST -p $PORT

        #Get the domain by the username - works properly
        user=$(sudo grep ${DOM} /etc/userdomains)

        #Extract only the username from the above string - works properly
        userNew=$(echo ${user} | awk 'END {print $NF}')

        #Log in as the new username - works properly
        sudo su -s /bin/bash ${userNew}

fi
这是一个cPanel服务器,我需要作为cPanel用户之一登录

请帮忙


另外,当在cPanel服务器上运行时,上述脚本可以正常运行。只有在本地机器上调用SSH脚本时,它才起作用。

如果要在远程服务器上运行该命令,则需要将它们放在SSH命令的末尾。您的脚本目前正在使用SSH连接到远程服务器,但只是在那里为您提供一个交互式shell

你需要这样的东西:

ssh $USER@$HOST -p $PORT <command to execute>
ssh$USER@$HOST-p$PORT
使用:

if[[“${TYPE}”==“cPanel”];然后

ssh$USER@$HOST-p$PORT我不确定这是否是一个自动回复,但我仍然意识到我的问题的答案绝对正确。问题是,在测试中,我并没有提到我需要保持登录到那个服务器,因为我并没有说明,所以回复并没有回答。我仍然投票给所有参与的人,并标出了正确的答案,因为根据我提出的问题给了我一个正确的答案。
if [[ "${TYPE}" == "cPanel" ]]; then
  ssh $USER@$HOST -p $PORT << \EOF

    #Get the domain by the username - works properly
    user=$(sudo grep ${DOM} /etc/userdomains)

    #Extract only the username from the above string - works properly
    userNew=$(echo ${user} | awk 'END {print $NF}')

    #Log in as the new username - works properly
    sudo su -s /bin/bash ${userNew}
EOF
fi