Код для отправки содержимого текстового файла в окно терминала [закрыто]

Я ищу какой-нибудь код, чтобы иметь возможность отправлять содержимое текстового файла в окно терминала нажатием кнопки или путем ввода псевдонима в поле Терминал. Если я объясню, что пытаюсь сделать, будет яснее.

Я использую машину ubuntu для управления некоторым оборудованием, в настоящее время она настроена так, что когда я набираю псевдоним (например, equipment1), он автоматически вводит SSH в equipment1. Он также отправляет пароль, который позволяет мне войти в систему, не набирая его. Проблема в том, что этому оборудованию требуется второй пароль для входа на высокий уровень привилегий. После входа в систему с использованием первого пароля он отображает кнопку ОК с текстом, показывающим второй пароль, который мне нужно скопировать и вставить в терминал, чтобы перейти на более высокий уровень.

Мне нужен код, который автоматически считывает содержимое текстового файла, содержащего код и второй пароль, и автоматически отправляет его в окно терминала, поэтому мне не нужно вырезать и вставлять его из текста кнопки . Я не возражаю, если он запускается, когда я нажимаю кнопку ОК, но я хочу, чтобы он запускал код для входа в оборудование, не отображая его на экране.

Сложность состоит в том, что как только я в первый раз вхожу в систему, у меня нет доступа к коду терминала, так как я подключился к оборудованию по SSH, поэтому оно должно иметь возможность запускать все сразу с псевдонима. .

Надеюсь, этой информации достаточно, чтобы кто-то понял, что я пытаюсь сделать, и помочь мне.

Любая помощь очень ценится. Спасибо за прочтение.

2
задан 14 August 2015 в 22:45

1 ответ

пароли Хранения обычно неправильный . При входе в систему до ssh хранение пароля пользователя в ~/.bashrc (и / или в истории команд) не безопасно по очевидным причинам; можно было бы использовать ssh ключи вместо этого, как предложено в комментариях lemonslice.

Однако, если это - путь, Вы хотите следовать, просто передать пароль по каналу к эти ssh команда; с помощью echo с -e опция выйдет из escape-последовательностей такой как \n разрешение Вам фальсифицировать Возврат ключевой хит и даже пройти несколько подсказок:

echo -ne 'password\n' | ssh user@host
user@debian ~ % echo -ne 'password1\n' | ssh user@localhost
Pseudo-terminal will not be allocated because stdin is not a terminal.
user@localhost's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
zsh: command not found: password1
user@debian ~ % echo -ne 'password1\npassword2\npassword3\n' | ssh user@localhost
Pseudo-terminal will not be allocated because stdin is not a terminal.
user@localhost's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
zsh: command not found: password1
zsh: command not found: password2
zsh: command not found: password3
0
ответ дан 3 December 2019 в 00:05

Другие вопросы по тегам:

Похожие вопросы: