Как выполнять команды на удаленном хосте с существующим пользователем на этом компьютере - PullRequest
0 голосов
/ 31 мая 2019

Я пишу сценарии оболочки, которые требуют запуска команд на нескольких удаленных хостах в зависимости от условий, которые удовлетворяют. как я могу выполнить команды на удаленном хосте, используя его пару ключей, и назначить вывод этих команд переменной на основном хосте.

Я пытался использовать

sshpass -f keypair hostname 'command' | 'commands'

но эта команда выполняется на самом хосте.

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

1) Добавление открытых ключей хоста (~ / .ssh / id_rsa.pub) к аутентифицированным ключам удаленного пользователя (~ / .ssh / authorized_keys)

Вы добавите содержимое открытого ключа к авторизованным ключам

2) Если у вас нет этого ключа, вы можете сгенерировать его

 ssh-keygen -t rsa

3) после этого вы можете

ssh <REMOTE USER NAME>@RemoteHOST  <command>

Как пример

ssh mebada@123.44.2.12 ls

4) Если у вас есть список команд, вы можете запустить файл оболочки scp и выполнить его оттуда (без пароля), и он переопределит удаленный

scp /path/to/shell.file user@host:/path/to/remote
ssh user@host chmod u+x /path/to/remote/shell.file
ssh user@host /path/to/remote/shell.file
0 голосов
/ 31 мая 2019

Используйте подстановку команд, чтобы назначить вывод команды переменной.Вам также необходимо выполнить команду ssh и указать имя удаленного пользователя.

variable=$(sshpass -f keypair ssh username@hostname 'command')
...