Создание нового пользователя в интерактивном режиме на удаленной машине - PullRequest
0 голосов
/ 01 марта 2019

У меня есть такая функция:

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

, которая оставляет терминал висящим .Ранее я успешно использовал флаг -tt для интерактивного выполнения нескольких команд с EOF, но не могу создать новую учетную запись в интерактивном режиме на моем удаленном сервере с помощью приведенного выше сценария.

Thisработает нормально, позволяя мне установить пароль, имя и т. д.:

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 голосов
/ 01 марта 2019

Если вы скажете ssh, что он получает данные от heredoc, он не может одновременно получать данные от вас через tty.

Вы можете переписать ваши команды как:

function accountSetup() {
    ssh -t $HOST '
        adduser billy
        [second command]
        [third command]
    '
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...