SSH密钥免密登录异常:sudo启动的Python备份脚本需输入密码,独立测试脚本却正常
SSH密钥免密登录异常:sudo启动的Python备份脚本需输入密码,独立测试脚本却正常
我有桌面加NAS的备份配置,之前通过SSH做备份已经运行多年,后来NAS故障更换了新设备。现在桌面和NAS都是运行Linux Mint LMDE6的普通电脑,但SSH的免密登录出现了问题。
我的备份程序需要用sudo启动(因为要复制root权限的文件),SSH已经配置了密钥认证来避免在定时任务备份时输入密码,但Python脚本执行时仍然要求输入密码,情况如下:
# Python代码: command = "ssh root@10.0.0.51 'ls \"/home/BackupGen10/BackupRemote/BackusoTEST/\"'" proc = subprocess.run(command, text=True, encoding="UTF-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
执行后Shell的响应:
root@10.0.0.51's password:
但当我把这段完全相同的命令从备份程序中提取出来,放到一个小型测试脚本中时,却能完美运行——完全不需要输入密码,输出也符合预期:
# 测试程序代码: #! /usr/bin/python3 # -*- coding: utf-8 -*- import subprocess command = "ssh root@10.0.0.51 'ls \"/home/BackupGen10/BackupRemote/BackusoTEST/\"'" proc = subprocess.run(command, text=True, encoding="UTF-8", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) print("Items in stdout:") for prs in proc.stdout.split("\n"): print(prs)
测试脚本的输出:
$ ./test_ssh.py Items in stdout: 2024-06-18_13-53-45-824424 2024-06-18_13-54-53-855948
我到底忽略了什么问题?
备注:内容来源于stack exchange,提问作者ullix
相关产品推荐
相关产品推荐

