【问题标题】:how to "sudo root" with posh-ssh (powershell)如何使用 posh-ssh (powershell) “sudo root”
【发布时间】:2016-05-30 08:29:16
【问题描述】:
我正在使用posh-ssh 连接到我的 ssh 服务器执行一些以 su root 开头的命令,但我无法成功切换用户到 root。
PS C:\> $rootpwdSec = ConvertTo-SecureString $rootpwd -AsPlainText -Force
PS C:\> Invoke-SSHStreamExpectSecureAction -Command 'su ' -ExpectString 'Password:' -SecureAction $rootpwdSec -ShellStream $stream
True
PS C:\> $stream.read();
[root@aaaaaa-test admin]#
PS C:\> Invoke-SSHCommandStream -SessionId $SessionId -Command 'id'
uid=500(admin) gid=500(admin) groups=500(admin) context=user_u:system_r:unconfined_t
PS C:\>
如何以 root 身份运行我的命令?
【问题讨论】:
标签:
powershell
ssh
posh-ssh
【解决方案1】:
我在使用 posh-ssh 和 ubuntu 时注意到的是,由于 ExpectString,我无法使用“sudo su -” sudo 到 root。它期待“(用户名)的[sudo]密码:”而我只是提供“密码:”
$stream = $session.Session.CreateShellStream("PS-SSH", 0, 0, 0, 0, 100)
$user = Invoke-SSHCommand $session -Command "whoami"
$SSHusersName = $user.Output | Out-String
$SSHusersName = $SSHusersName.Trim()
$results = Invoke-SSHStreamExpectSecureAction -ShellStream $stream -Command "sudo su -" -ExpectString "[sudo] password for $($SSHusersName):" -SecureAction $secpas
$stream.Read()
这就是我能够 sudo 到 root 的方式。同样,根据您连接的 *nix 变体,它可能会有所不同。