- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 paramiko
和 SSHTunnelForwarder
在 Windows 10 上使用 Python 3.6
创建 SSH 隧道
我已经使用 PuTTY 设置了连接,并且连接没有问题..
每当我尝试使用 paramiko
开始连接时,我都会收到以下错误:
paramiko.ssh_exception.SSHException: base64 decoding error: Incorrect padding
我尝试在开头和结尾使用 =
和 ==
===
填充 RSA key ... (在示例中,1 x =
位于末尾,它 %4 == 0
..
我还尝试传入一个 pem
文件和一个 ppk
版本。
如何让 paramiko 接受 key ??
import paramiko
from io import StringIO
KEY = """-----BEGIN RSA PRIVATE KEY-----
AAABAQCHzDV+UbIfYV3IlpW6nTMSutC9IpDw7GYbTwctfaMfdckZLEIvbQY56Q7p
Dd8O0lAt74s6zqylJK8enCKzMKcZG09OZFy0agj7uXONh5vi00sa+vs3YnosxQwZ
QA4fYSVaGfTacHB00v0gYcjMqSaQs13nUM+dtn5xnDpKgS195OXy7XKEOIeip0al
QsTB1NbXualOJMREh+3MZC/uj56znvvTCTIjfpCbJkHIvYdrj4GXAom8e3bw8Uzl
ltWJiFXT2pJ31kkFfAjYyle/NpK01ISxDQP3y9F8YuObNVkSlppAYfj/rxHP+hfZ
LeHBQL9jM/Ok+7vBcwoQ1dynKvStAAAAgQDYGxL2O98peWp34lz0TbK86iGdOy0p
ZpcmuvjkmTgdQC/h16AZI5zwloHCO15jicsKU8Hzxf9SJw46R9jwXwIgWWM09HND
OTFQB+gnJQmVp5mO4Un2CIkVVyrnG9y/M9mXCKyxQY8YU7HGaE11iJCvpr9Q53GX
xjxT86Yk/y+s7QAAAIEAugCHIjSOFoNVssD4K3sDLFoP82cXgM7JaqnmeUZ780aw
rpvOFN1snUdY4sbTl+uln1SjvjHWLbWz4qsylsVwBVEDOqyXGcpJUMdnRJ4Y0Pjn
YOaC9tWO3dB936ITNMzPJuAJENJcRk4E3NdUx0n0ZUEflJwUxRSVXFeQutmTi0I8A
AACBALrWGeM7XrcJFJz+cw8p4nNDSRuZgBlDgSquqkEJ0cma7mGCUnq1gFy282LX
pFIDWuuhyERdSy0x1D5UMx34pbQg51MmjOrcMqfG0HpcR0Q/fHE0LVQc6bTCfCvN
sR9oHllLYJguW/Su2EsajM5PmniW0b+kMA51CPIXdPBDWtAQ=
-----END PRIVATE KEY-----"""
private_key_file = StringIO()
private_key_file.write(KEY)
private_key_file.seek(0)
print('\n\nlen(KEY)%4 ==', len(KEY)%4)
print()
mypkey = paramiko.RSAKey.from_private_key(private_key_file)
完整回溯:
len(KEY)%4 == 0
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\pkey.py", line 306, in _read_private_key
data = decodebytes(b(''.join(lines[start:end])))
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\base64.py", line 553, in decodebytes
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:/GIT/Production_apps/deploy_data_files/connect_tosql.py", line 37, in <module>
mypkey = paramiko.RSAKey.from_private_key(private_key_file)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\pkey.py", line 227, in from_private_key
key = cls(file_obj=file_obj, password=password)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\rsakey.py", line 45, in __init__
self._from_private_key(file_obj, password)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\rsakey.py", line 173, in _from_private_key
data = self._read_private_key('RSA', file_obj, password)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\pkey.py", line 308, in _read_private_key
raise SSHException('base64 decoding error: ' + str(e))
paramiko.ssh_exception.SSHException: base64 decoding error: Incorrect padding
(出于安全原因,我更改了 key 中的一些随机字节,但长度和错误是相同的)
这是我在 PuTTY 中使用的 ppk
文件:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: user_1@computer
Public-Lines: 6
AAAAB3NzaC1yc2EAAAABJQAAAQEAnQQd2g519EiUb+4dH8XDDagBWq/3lpFWD5Ng
TJlEnGAwhRsshtYPMvV5PXgJ6SMstRz4+/73nvJqe2SIHzBBNQeTsqQLMJqaYw5t
m6TMPkRO1zIyeAndQ8PV/TIQVEhTMGuZKJICBxP0rXEQLKOUl09kk3VwDlsCM1yj
ZiVcmZI7/Hyk2U6c0NGUUmpTSNQBraA8ZJ8tJJ28WTM1S4ogBpBjn3DP+hPlZI7h
Ek0gCc6XfwChOcRBY1kd3IHuC3fI51so+5ohcdILCflhODmAQZapNIP5dJudX3sd
6WWi/ibgQycJ+43Nricn0JxVDRzdOViJo2ZuA0Bte0wihVwoYw==
Private-Lines: 14
AAABAQCHzDV+UbIfYV3IlpW6nTMSutC9IpDw7GYbTwctfaMfdckZLEIvbQY56Q7p
Dd8O0lAt74s6zqylJK8enCKzMKcZG09OZFy0agj7uXONh5vi00sa+vs3YnosxQwZ
QA4fYSVaTzhacHB00v0gYcjMqSaQs13nUM+dtn5xnDpKgS195OXy7XKEOIeip0al
QsTB1NbXualOJMREh+3MZC/uj56znvvTCTIjfpCbJkHIvYdrj4GXAom8e3bw8Uzl
ltWJiFXT2pJ31kkFfAjYyle/NpK01ISxDQP3y9F8YuObNVkSlppAYfj/rxHP+hfZ
LeHBQL9jM/Ok+7vBcwoQ1dynKvStAAAAgQDYGxL2O98peWp34lz0TbK86iGdOy0p
ZpcmuvjkmTgdQC/h16AZI5zw6dHCO15jicsKU8Hzxf9SJw46R9jwXwIgWWM09HND
OTFQB+gnJQmVp5mO4Un2CIkVVyrnG9y/M9mXCKyxQY8YU7HGaE11iJCvpr9Q53GX
xjxT86Yk/y+s7QAAAIEAugCHIjSOFoNVssD4K3sDLFoP82cXgM7JaqnmeUZ780aw
rpvOFN1snUdY4sbTl+uln1SjvjHWLbWz4qsylsVwBVEDOqyXGcpJUMdnRJ4Y0Pjn
YOaC9tWO3dB936ITNMzPJuAJENJcR8H8NdUx0n0ZUEflJwUxRSVXFeQutmTi0I8A
AACBALrWGeM7XrcJFJz+cw8p4nNDSRuZgBlDgSquqkEJ0cma7mGCUnq1gFy282LX
pFIDWuuhyERdSy0x1D5UMx34pbQg51MmjOrcMqfG0HpcR0Q/fHE0LVQc6bTCfCvN
sR9oHllLYJguW/Su2EsajM5PmniW0b+kNA51CPIXdPBDWtAQ
Private-MAC: d44d6ad6590c05c04eb78770be16ee5e11f0802e
最佳答案
Paramiko 仅支持 OpenSSH key 格式。
您不能只使用 PuTTY 格式的 key 文件并添加 OpenSSH“ header ”。这不会使 key 采用 OpenSSH 格式。
使用 PuTTYgen 将 PuTTY key 转换为 OpenSSH key (Conversions > Export OpenSSH key)。
关于python - 将 PuTTY/ppk 私钥加载到 Paramiko 时为 "base64 decoding error: Incorrect padding",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51955990/
我不是 C 程序员。有什么想法吗? 这是我尝试过的安装命令: pip install paramiko sudo pip install paramiko 输出: src/_fastmath.c:15
Importing paramiko throws following exception on Python3. Traceback (most recent call last): File
我正在编写一个 Python 脚本,需要下载远程 xml 文件来解析它。 我正在使用 paramiko。 这是脚本: def copyFile(ip, user, pwd, remotePath, l
好的,所以我正在尝试在我的 python 脚本中实现 paramiko。 目的是连接同一局域网内的另一台PC,通过python执行命令。 我的 python 版本: Python 2.7.6 (def
我正在调试一些代码,这将导致我不断地登录/退出一些外部 sftp 服务器。有谁知道如果代码中出现非 paramiko 异常,paramiko 是否会自动关闭外部服务器上的 ssh/sftp sessi
我不断收到以下错误: Traceback (most recent call last): File "/home/d/workspace/paramiko/connect_test/main.p
我正在尝试通过 SSH 从 Python 远程执行命令,在这种特殊情况下需要将 stdin 重定向到/dev/null。 也就是说,与使用带有 -n 标志的 OpenSSH 客户端相同: ssh -n
当我尝试打开 mysql 工作台时,它显示“导入错误:没有名为 paramiko 的模块;操作失败:无法启动 SSH 隧道管理器”,尽管我已经安装了 paramiko。我正在使用 python 2.7
我正在尝试使用 paramiko 通过 netcat 反弹 SSH session : MyLocalMachine ----||----> MiddleMachine --(netcat)-->
我目前正在开发一个程序,该程序尝试联系运行 Cisco IOS 的众多路由器以获取其当前配置。我正在尝试使用 Paramiko 模块的 SSHClient 来实现这一点目的: def get_conf
我有基于 paramiko 模块的 python 2.7 代码,我想将其移植到 python 3.3,但我似乎找不到可以工作的 paramiko 版本或合适的替代版本。 我需要该模块在 Windows
我正在尝试运行使用 SSHLibrary 的机器人框架测试用例。我已经安装了所有必需的库(在本例中为 paramiko)。但我仍然收到此错误。 我得到的错误是: Error in file '/opt
有什么方法可以在后台运行 mysql 命令或保持连接事件一段时间,以便可以对其执行查询。可以用nohup来实现吗?如果是,怎么办? 最佳答案 是的,你可以用ajax来做到这一点 使用Nohup你可以做
我正在尝试在 python 中使用 paramiko 执行一个简单的代理命令。 基本上我正在尝试复制此 ssh 命令的行为: ssh -i ~/.ssh/destination_key user@de
This question already has answers here: Pass input/variables to command/script over SSH using Python
Paramiko 支持基于证书的身份验证吗? connect 方法中的 key_filename 提到它同时支持私钥和证书,这里的证书是指基于证书的身份验证吗? key_filename (str)
我刚刚尝试与 paramiko 进行 ssh 连接。一切看起来都很好,但在最后一步,当调用 close() 方法断开客户端连接时。 这是我的脚本: #!/usr/bin/python import p
上下文 如果有一个连接到服务器的脚本,然后 curl 本地主机以获取我需要的信息 问题 我的问题是,我需要从大约 200 台服务器获取信息,我使用的方法大约需要 15 分钟才能完成,这还不错,但我想做
我在尝试关闭 Paramiko SFTP 连接时遇到问题。即使我调用关闭连接仍然挂起,我通过运行 netstat (Windows) 检查: netstat -an | find ":22" 和pyt
localpath = 'U:\\' utime = sftp.stat("/TestBTEC/").st_mtime last_modified = datetime.fromtimestamp(u
我是一名优秀的程序员,十分优秀!