我正在开发一个python包,安装后需要使用SSH与远程服务器进行交互。我对我想为我的用户连接的所有服务器都进行了RSA密钥验证,但是我需要使用root privilages运行setup.py安装。不幸的是,root似乎不能使用我拥有的RSA密钥,因此我尝试从setup.py运行命令,但权限较低,但它没有用。检查RSA密钥是否正常工作的示例:
在命令行中运行sudo python
后,在python环境中:
from subprocess import call
call(['ssh','-oBatchMode=yes',host])
给出Permission denied (publickey,password).
在命令行中运行python
并运行相同的脚本
在命令行中运行sudo python
,然后:
from subprocess import call
call(['sudo','-u','pi','ssh','-oBatchMode=yes',host])
给出相同的错误
然后运行sudo python
:
call(['sudo','-u','pi','whoami'])
按预期返回pi
为什么我不能以这种方式访问我的RSA密钥?我能做些什么才能做到这一点?