ssh 到服务器并切换用户并更改目录

ssh 到服务器并切换用户并更改目录

我需要 ssh 到服务器,然后切换用户并更改目录,然后运行命令。现在正在做ssh -t username@hostname "sudo su - otheruser && cd /path/to/directory && command"。但这并没有更改目录,它只是切换用户并运行命令。

答案1

使用 -c 开关将命令传递给 su。复杂的命令必须用引号或双引号括起来。由于您已经在使用双引号,因此请使用单引号或转义内部双引号对。

例子:

ssh -t username@hostname "sudo su - otheruser -c \"cd /path/to/directory && command\""
ssh -t username@hostname "sudo su - otheruser -c 'cd /path/to/directory && command'"
ssh -t username@hostname 'sudo su - otheruser -c "cd /path/to/directory && command"'

相关内容