параллель-ssh с Паролем Защищенный Ключ SSH

В файловых системах Unix или Linux нет никакого символа конца файла. read() системный вызов возвращается 0 на условии конца файла, если используемый дескриптор файла относится к регулярному файлу. read() работы по-другому над сокетами и каналами. Вы не заставляете специальный символ отмечать конец файла.

wc дал Вам 30 как символ или количество байта, потому что первая строка имеет 12 символов, считая конец строки (перевод строки ASCII, 0x0a численно), и вторая строка имеет 18, также считая новую строку (иначе перевод строки).

Можно перепроверить счетчик символов в этом случае с ls -l, и если Вы имеете hexdump или xxd можно получить шестнадцатеричную распечатку, показывающую Вам, 0x0a оценил новые строки.

Стандартная библиотечная функция C fgetc() действительно возвращается-1 на конце файла, но это сделано в коде библиотеки, не Unix (или Linux) или read() системный вызов.

8
29.09.2017, 04:40
3 ответа
[1120419] Если предположить, что [1121038]параллель-ш [1121039] и [1121040]pssh[1121041] эквивалентны, то да, то то, что вы пытаетесь сделать, должно прекрасно сработать с обработкой парольной фразы при использовании переключателя [1121042]-A[1121043]. [12205]Пример[12206]Вот пример, когда я подключаюсь к двум разным системам, [1121044]хост1[1121045] и [1121046]хост2[1121047]. Я использую [1121048]-l[1121049] переключатель на [1121050]pssh[1121051], чтобы по умолчанию получить пользователя [1121052]root[1121053]. Однако на [1121054]host2[1121055] я переопределяю это в переключателе [1121056]-H[1121057], указывая имя хоста как [1121058]user1@host2[1121059]. [12207]Когда работает вышеописанное, вы заметите вывод команды, которую я выполняю, [1121060]echo "hi"[1121061]. [12208]Ваша проблема [12209]Проблема, с которой вы сталкиваетесь с парольной фразой на вашей паре ключей SSH, связана с ошибкой. Это ошибка под названием: [1121062]Issue 80: Not passing passphrase?[1121063]. 4-й комментарий к этому выпуску показывает заплатку:[12210]excerpt[12211]#4 robine...@gmail.com[12212]Я изменил строку на[12213]if not ( prompt.strip().lower().endwith('password:') или Введите ключевую фразу в prompt.strip().lower(): [12214]и похоже работает[12215]References[12216]PSSH : Параллельная SSH для выполнения команд на ряде хостов[12217]
5
27.01.2020, 20:11
[1120531]Мне удалось заставить это работать, установив [1121154]keychain[1121155], а не вручную исправляя ошибку [1121156]-[1121157], которая вызвала мои проблемы. [12268]Установка и ручное выполнение связки ключей [12269]Выполнение команды без ввода пароля/парольной фразы[12270]Теперь мне не нужна моя парольная фраза при вызове [1121158]parallel-ssh[1121159], так как связка ключей заботится об аутентификации:[12271]Выполнение связки ключей при входе[12272]Вместо того, чтобы вручную выполнять и добавлять ключ в связку ключей, просто добавьте следующее в конец вашей [1121160]~/. bash_profile[1121161]:[12273]Это гарантирует, что при первом входе в систему, после перезагрузки, Вам будет предложено ввести ключевую фразу. Ваш ключ останется в связке ключей до следующей перезагрузки или вы очистите связку ключей вручную.[12274]Cron Jobs Using the keychain[12275]With the above entered in your [1121162]~/.bash_profile[1121163] file, you can use of the fact you're key is now stored in the keychain, souring the same file before your cronjob is run. Например, у меня есть скрипт резервного копирования, который запускается в 21:00 каждую ночь и копирует вещи на удаленный компьютер через SSH. Это запись в моем crontab ([1121164]crontab -e[1121165]):[12276]
5
27.01.2020, 20:11
[119338] Используйте [119769]ssh-agent[119770] для автоматической аутентификации (с именем оболочки в качестве аргумента, чтобы переменные окружения агента были установлены в этой новой оболочке). Добавьте ключ с помощью [119771]ssh-add[119772] и введите пароль только один раз.

1
27.01.2020, 20:11

Теги

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