Использование модуля подпроцесса для доступа к SSH-устройству без пароля - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь создать графический интерфейс для мониторинга некоторых процессов, происходящих на Raspberry Pi через SSH.

В данный момент Pi имеет настройку без пароля (ранее я использовал keygen для генерации файла пароля) - я могу просто набрать

ssh host@xxx.xxx.x.xx

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

Сейчас я пытаюсь написать сценарий Python для доступа к устройству, но при попытке запуска мне предлагается ввести пароль

from subprocess import call
call(['ssh', 'host@xxx.xxx.x.xx'])

Я пытался os модуль тоже безрезультатно.Я что-то упускаю?

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

1 Ответ

0 голосов
/ 30 мая 2018

Это потому, что ваш терминал запускает ssh-agent, который знает ваши идентификационные данные ssh.В то время как ваш скрипт на python должен иметь пустое окружение, следовательно, нет доступа к вашему ssh-agent.

Кроме того, вы можете положиться на библиотеку, такую ​​как paramiko .Я нашел пример с использованием ключей ssh ​​ или этого SO ответа .

...