2017-03-31 49 views
0

我来自本地机器,SSH到远程机器,并sudo su管理员用户。我不想退出SSH,我希望留在远程机器上,所以我试过:如何在远程机器上ssh +期望登录和su到另一个用户?

$cat 
#!/usr/bin/expect 
spawn "/usr/bin/ssh [email protected] -t \"/usr/bin/sudo su admin\"" 
expect "Password: " {send "mypassword\r"} 


$./myssh.exp 
spawn /usr/bin/ssh [email protected] -t "/usr/bin/sudo su admin" 
couldn't execute "/usr/bin/ssh [email protected] -t "/usr/bin/sudo su admin"": no such file or directory 
    while executing 
"spawn "/usr/bin/ssh [email protected] -t \"/usr/bin/sudo su admin\""" 
    (file "./myssh.exp" line 2) 

似乎我有语法错误。我试图添加/删除里面的“\”和outisde我的spawn语句,都不起作用。如何解决它?

谢谢!

+0

使用〜(波浪号)符号,而不是 “\” – shas

回答

2

应该是:

spawn /usr/bin/ssh -t [email protected] "/usr/bin/sudo su admin" 
expect "Password: " { send "mypassword\r" } 
interact 
相关问题