连续运行多个 ssh(一个在另一个)

连续运行多个 ssh(一个在另一个)

我想在一行中执行以下操作(这样我就可以在我的 中为它起别名.bashrc

0. before doing anything I am user1 on server0 
1. ssh to server1
2. impersonate user2 (**THIS HAS TO BE DONE BY `sudo -u user2 sudosh`**)
3. ssh from server1 to server2
4. cd dirOnServer2

所以我的提示是在之后

user@server0:/dirOnServer0) superSshCommand
user2@server2:/dirOnServer2)

这可能吗 ?

答案1

其中大部分可以通过单个命令来实现,因此可以放入别名中:

ssh -t server1 sudo -u user2 ssh server2

但是,更改目录比较困难。如果您可以保证user2始终位于您的目标目录中,您可以将其放入cd dirOnServer2您的.profile(或.bash_profile) 中,如下所示:

cd dirOnServer2

请注意,只有在有来源的情况下才会发生目录更改.profile,并且这只发生在交互式 shell 中。

相关内容