【发布时间】:2020-12-04 23:24:59
【问题描述】:
我正在使用 crypto/ssh 包通过 ssh 成功登录到远程服务器并运行我的命令。但是,我似乎无法切换用户(较低权限)并运行命令。
cmd = 'whoami && sudo su spinner && whoami'
output, err := RemoteRun("ubuntu", IP, key, cmd)
if err != nil {
fmt.Println("Couldn't run the command on the remote server.")
}
fmt.Printf("SSH output: %s", output)
我得到以下输出:
SSH output: ubuntu
ubuntu
而不是
SSH output: ubuntu
spinner
这是因为会话是使用 ubuntu 用户创建的吗?有什么办法可以让这个运行还是我在这里遗漏了什么?
【问题讨论】:
-
whoami 在 sudo 退出后在启动 sudo 的 shell 中运行,而不是在 by sudo su 启动的 shell 中运行。此输出是意料之中的,与 ssh 无关。试试“sudo -u spinner whoami”。
标签: go ssh ssh-tunnel