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

使用Paramiko连接SSH后,scp传输文件仍要求输入密码的解决方法

问题原因

你通过paramiko建立的SSH连接和os.system('scp ...')调用的系统scp命令是完全独立的两个进程,scp不会复用paramiko已经建立好的连接,所以仍然会要求输入密码。

解决方案

方案一:使用paramiko内置的SCPClient(推荐)

直接用paramiko提供的SCPClient模块来传输文件,复用已有的SSH连接,无需额外验证。修改后的代码如下:

# importando as bibliotecas
import paramiko
from paramiko.scp import SCPClient

# criando o cliente ssh
client = paramiko.SSHClient()

# carregando as chaves de autenticação
client.load_system_host_keys()

# adicionando uma chave de autenticação
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print('Enviando o arquivo de descriptografia')

# conectando ao servidor
client.connect('192.168.15.21', username='kali', password='kali')

# 使用SCPClient传输文件
with SCPClient(client.get_transport()) as scp:
    scp.put('file.py', remote_path='/home/kali/file.py')

# fechando a conexão
client.close()

方案二:通过sshpass传递密码给scp命令(不推荐)

如果你坚持要使用系统scp命令,可以先在本地安装sshpass工具(Kali默认已安装,其他系统可通过包管理器安装),然后修改scp命令的调用方式:

os.system('sshpass -p "kali" scp file.py kali@192.168.15.21:/home/kali')

注意:这种方式密码会以明文形式出现在系统进程列表中,存在安全风险,仅适合测试场景使用。

内容的提问来源于stack exchange,提问作者BloodHound

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:25:21