使用子进程模块访问无密码SSH设备

时间:2018-05-29 22:06:31

标签: python linux raspberry-pi subprocess ssh-keys

我正在尝试构建一个GUI,用于监控通过SSH在Raspberry Pi上进行的一些进程。

Pi目前有无密码设置(我之前使用过keygen来生成密码文件) - 我只需输入

ssh host@xxx.xxx.x.xx

进入终端无需密码即可访问它。

我现在正在尝试编写一个Python脚本来访问设备,但在我尝试运行时会提示输入密码

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

我也尝试了 os 模块,但无济于事。有什么我想念的吗?

(道歉,如果之前已经回答。我找不到任何相同的东西,我的编程技巧相当差)

1 个答案:

答案 0 :(得分:1)

这是因为您的终端运行ssh-agent,它知道您的ssh身份。您的python脚本必须具有空白环境,因此无法访问您的ssh-agent

此外,您可以依赖paramiko之类的lib。我找到了example using ssh keys或此SO answser