【问题标题】:Switch user after ssh into server using the crypto/ssh in golang使用 golang 中的 crypto/ssh 将 ssh 后的用户切换到服务器
【发布时间】: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


【解决方案1】:

只是对我传递命令的方式稍作改变,我得到了预期的输出。

sudo su spinner -c "whoami"

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2011-10-09
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    相关资源
    最近更新 更多