sudo 然后 ssh 的别名

sudo 然后 ssh 的别名

我正在寻找为以下两个命令写一个别名:

sudo su - user
ssh somewhere

我试过了

alias jump='sudo su - user; ssh '

然后使用它作为

jump somewhere

但这不起作用。还有其他选择吗?还是不可能?

答案1

ssh会在比赛sudo su结束后跑,这就是你的方法行不通的原因。如果你被允许跑,sudo ssh那么这可能会奏效:

alias jump='sudo -u user ssh '
jump somewhere

或者su -c。它不分配 tty,但ssh -tt可以强制分配。但我不确定一切都会正常工作。别名需要一些繁重的引用和转义狂潮,使用函数会更容易:

function jump { sudo su - -c 'ssh -tt "$@"' user su "$@"; }
jump somewhere

unalias jump如果别名仍然定义,请不要忘记。

相关内容