python - 使用 subprocess 模块访问无密码 SSH 设备

标签 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 模块,但没有用。有什么我想念的吗?

(如果之前有人回答过这个问题,我深表歉意。我找不到类似的东西,而且我的编程技能很差)

最佳答案

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

此外,您可以依赖一个库,例如 paramiko .我找到了一个 example using ssh keys或者这个 SO answser .

关于python - 使用 subprocess 模块访问无密码 SSH 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593656/

相关文章:

python - 如何设置为默认 matplotlib 等高线图以始终标记等高线

我可以从 c 程序与打开的 vt 交互吗?

linux - 'cd -' 代表什么?

c - free() 由 system() 使用的缓冲区

serial-port - Raspberry Pi UART 串​​口无法正常工作

python - 这是什么意思?

python - 为什么0.1有时能准确打印,有时却不能?

python - 在 python3 中使用 mediainfo 运行 check_output 会产生错误,即使在终端中的相同调用工作正常

c - 32位浮点除法并没有我想象的那么慢

python-3.x - 每 n 秒使用 Open CV 处理图像