You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:43:11