我使用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身份运行我的命令?
答案 0 :(得分:1)
在使用posh-ssh和ubuntu时我注意到的是由于ExpectString,我没有使用“sudo su - ”来suto up to 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 to root的方式。同样,根据您连接的* nix变体,它可能会有所不同。