Я хотел бы использовать мой SSH-ключ, защищенный парольной фразой, при выполнении задач с parallel-ssh
(и связанных инструментов). Однако я не могу заставить это работать.
Все документы, касающиеся parallel-ssh
, показывают, что я должен быть в состоянии использовать --askpass
или -A
сделать это:
-A
--askpass
Prompt for a password and pass it to ssh. The password may be
used for either to unlock a key or for password authentication. The
password is transferred in a fairly secure manner (e.g., it will not
show up in argument lists). However, be aware that a root user on
your system could potentially intercept the password.
Однако, когда я ввожу ключевую фразу своего ключа, он не работает:
$ parallel-ssh --hosts=machines --user=my_user --askpass \
--timeout=0 --inline -v 'sudo apt-get update'
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 09:59:36 [FAILURE] amritiii Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[2] 09:59:37 [FAILURE] gbdev Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[3] 09:59:37 [FAILURE] code Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[4] 09:59:37 [FAILURE] apollo Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[5] 09:59:37 [FAILURE] odin Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[6] 09:59:37 [FAILURE] hathor Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[7] 09:59:37 [FAILURE] ldap Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[8] 09:59:37 [FAILURE] thor Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
[9] 09:59:37 [FAILURE] bioserver Exited with error code 255
Stderr: Enter passphrase for key '/home/nhaigh/.ssh/id_rsa':
Permission denied (publickey,password).
Я подтвердил, что мой ключ SSH и фраза-пароль работают на каждой из машин, поэтому я понятия не имею, как это работает.
ssh
key-authentication
parallel-ssh
Натан Уотсон-Хей
источник
источник
parallel-ssh
иpssh
в самом деле одинаковы.Ответы:
Если предположить , что
parallel-ssh
иpssh
эквивалентны тогда да , что вы пытаетесь сделать , должен работать нормально с пылом ключевой фразы при использовании-A
переключателя.пример
Вот пример, где я подключаюсь к 2 различным системам,
host1
иhost2
. Я использую-l
переключатель, чтобыpssh
обеспечить пользователя по умолчаниюroot
. Однакоhost2
я переопределяю это в-H
коммутаторе, указав имя хоста какuser1@host2
.Когда вышесказанное сработает, вы заметите вывод команды, которую я запускаю
echo "hi"
.Ваша проблема
Проблема, с которой вы сталкиваетесь с парольной фразой в вашей паре ключей SSH, связана с ошибкой. Это ошибка под названием: Проблема 80: Не передать пароль? , 4-й комментарий к этой проблеме показывает патч:
выдержка
Ссылки
источник
parallel-ssh
иpssh
действительно одинаковы. Я не спрашивал, возможно ли это - документация дает понять, что это возможно. У меня проблемы с тем, чтобы заставить его работать, как это задокументировано.parallel-ssh
до сих пор не уверены, как наилучшим образом определить вопрос с запросом пароля и, следовательно, ответить введенным паролем / фразой, я собираюсь придерживаться своего метода цепочки для ключей. Я бы не хотел, чтобы моя фраза была непреднамеренно раскрыта в ответ на неверный вопрос.parallel-ssh
при передаче ключевой фразыSSH
. Однако, для тех, кто сталкивается с этим вопросом в будущем, эта ошибка, возможно, была исправлена, или вы можете не редактироватьaskpass_client.py
файл. В любом случае вы можете обойти это, используяkeychain
ответ ( unix.stackexchange.com/a/128998/57414 ) или ответ ssh-agent ( unix.stackexchange.com/a/129022/57414 )Мне удалось заставить это работать, установив,
keychain
а не вручную исправляя ошибку, вызывающую мои проблемы.Установить и вручную запустить связку ключей
Выполнить команду без ввода пароля / парольной фразы
Теперь на этот раз мне не нужна моя парольная фраза при вызове,
parallel-ssh
поскольку цепочка для ключей заботится о проверке подлинности:Запустить связку ключей при входе в систему
Вместо того, чтобы вручную запускать и добавлять свой ключ в цепочку для ключей, просто добавьте следующее в конец своего
~/.bash_profile
:Это гарантирует, что при первом входе в систему после перезагрузки вам будет предложено ввести пароль. Ваш ключ будет оставаться в связке ключей до следующей перезагрузки, или вы очистите связку ключей вручную.
Cron Jobs Использование цепочки для ключей
С учетом того, что в вашем
~/.bash_profile
файле указано выше , вы можете воспользоваться тем, что ваш ключ теперь хранится в цепочке для ключей, используя тот же файл перед запуском cronjob. Например, у меня есть скрипт резервного копирования, который запускается в 21:00 каждую ночь и копирует данные на удаленный компьютер через SSH. Это запись в моем crontab (crontab -e
):источник
Используйте ssh-agent для автоматической аутентификации (с именем оболочки в качестве аргумента для установки переменных среды агента в этой новой оболочке). Добавьте ключ с помощью ssh-add и введите пароль только один раз.
источник