在远程计算机上以交互方式创建新用户

时间:2019-03-01 08:49:38

标签: linux ssh terminal account

我具有这样的功能:

function accountSetup() {
ssh -tt $HOST << EOF
    adduser billy
    [second command]
    [third command]
EOF
}

将终端挂起。我以前使用-tt标志成功地与EOF交互地执行了一些命令,但是我似乎无法使用上述脚本在远程服务器上交互地创建新帐户。

这很好用,允许我设置密码,名称等:

function accountSetup() {
    ssh -tt $HOST adduser billy
}

但是,当我引入其他必要的命令时,它开始变得愚蠢..我确信有一种更好的方法来执行它们,而无需像这样反复登录:

function accountSetup() {
    ssh -tt $HOST adduser billy
    ssh -tt $HOST [third command]
    ssh -tt $HOST [second command]
}

问题: 是什么导致我的终端挂起我的第一个功能?我如何才能一次使用ssh来创建一个交互式帐户并继续执行命令?

谢谢:)

1 个答案:

答案 0 :(得分:0)

如果您告诉ssh从Heredoc输入信息,则它不能同时通过tty从您那里获取输入信息。

您可以将命令重写为:

function accountSetup() {
    ssh -t $HOST '
        adduser billy
        [second command]
        [third command]
    '
}