在远程服务器上使用 ssh 执行 sudo su 不起作用
Doing sudo su with ssh on a remote server not working
这似乎是 Whosebug 上的一个热门问题,但似乎对我没有任何帮助
我会先解释我的问题,然后再去尝试我尝试过的解决方案
我需要做的是从serverA
ssh
到serverB
。为此,我在服务器上设置了 rsa 加密,我可以成功地通过 ssh 连接到 serverB
我用
ssh user@hostname
现在我想在 serverB
上执行某些命令。第一个是切换到 app
用户。为此,我需要 运行 sudo su - app
命令,但我也想在同一行中提供密码,这样它就不会再次提示输入密码。
所以我尝试先直接在 serverB
上用密码 运行 sudo su - app
命令来测试
我试过以下方法
echo "password" | sudo su - app
sudo -S <<< "password" su - app
echo "password" | sudo -S su - app
echo 'passowrd' | sudo 'su -c - app'
但是 none 以上解决方案对我有用。
我能得到的最接近的是
echo "password" | script -c "sudo su - app"
它在哪里接受密码并显示给我
app@hostname [/app]
$
然而,当我 运行 命令 whoami
时,它仍然显示 user
而不是 app
。然而,当我直接 运行 sudo su - app
并提供通行证然后 运行 whoami
它给了我 app
我正在尝试 运行 使用 ssh 命令
ssh user@hostname -t 'echo "password" | script -c "sudo su - app"'
P.S. 用户 user
没有 root
访问权限,而且我无法使用任何插件,因为我没有有权做同样的事情
我的服务器是Redhat 6.2
希望我能解释清楚。寻找一些可以提供帮助的答案。
抱歉我的英语不好。感谢帮助。
如果我们使用 rsa 密钥加密设置 ssh,那么我们就不需要使用密码。
为了使用 public/private 密钥启用 ssh,我遵循
为 serverA
上的用户生成 public/private ke
y
ssh-keygen -t rsa
转到 .ssh/id_rsa.pub
文件并复制 public 密钥
登录ServerB
,然后sudo su - app
更改为应用程序用户。在文件 .ssh/authorized_key
中复制 public 键。
尝试 ssh
到 serverB
现在从 serverA
喜欢
ssh app@hostnameServerB
无需密码即可运行。
这似乎是 Whosebug 上的一个热门问题,但似乎对我没有任何帮助
我会先解释我的问题,然后再去尝试我尝试过的解决方案
我需要做的是从serverA
ssh
到serverB
。为此,我在服务器上设置了 rsa 加密,我可以成功地通过 ssh 连接到 serverB
我用
ssh user@hostname
现在我想在 serverB
上执行某些命令。第一个是切换到 app
用户。为此,我需要 运行 sudo su - app
命令,但我也想在同一行中提供密码,这样它就不会再次提示输入密码。
所以我尝试先直接在 serverB
上用密码 运行 sudo su - app
命令来测试
我试过以下方法
echo "password" | sudo su - app
sudo -S <<< "password" su - app
echo "password" | sudo -S su - app
echo 'passowrd' | sudo 'su -c - app'
但是 none 以上解决方案对我有用。
我能得到的最接近的是
echo "password" | script -c "sudo su - app"
它在哪里接受密码并显示给我
app@hostname [/app]
$
然而,当我 运行 命令 whoami
时,它仍然显示 user
而不是 app
。然而,当我直接 运行 sudo su - app
并提供通行证然后 运行 whoami
它给了我 app
我正在尝试 运行 使用 ssh 命令
ssh user@hostname -t 'echo "password" | script -c "sudo su - app"'
P.S. 用户 user
没有 root
访问权限,而且我无法使用任何插件,因为我没有有权做同样的事情
我的服务器是Redhat 6.2
希望我能解释清楚。寻找一些可以提供帮助的答案。
抱歉我的英语不好。感谢帮助。
如果我们使用 rsa 密钥加密设置 ssh,那么我们就不需要使用密码。
为了使用 public/private 密钥启用 ssh,我遵循
为
上的用户生成serverA
public/private ke
yssh-keygen -t rsa
转到
.ssh/id_rsa.pub
文件并复制 public 密钥登录
ServerB
,然后sudo su - app
更改为应用程序用户。在文件.ssh/authorized_key
中复制 public 键。尝试
ssh
到serverB
现在从serverA
喜欢ssh app@hostnameServerB
无需密码即可运行。