【发布时间】:2017-03-03 05:48:47
【问题描述】:
我正在使用 sshtunnel 连接到远程服务器并从那里连接到数据库。一切正常,除了 sshtunnel 似乎无法识别我的ssh_private_key_password,除非我已经在其他地方输入了它(或者更可能是我在提供它时犯了错误)。
with SSHTunnelForwarder(
('my.server', 22),
ssh_username="myUsername",
ssh_pkey="~/.ssh/id_rsa",
ssh_private_key_password="myPassword",
remote_bind_address=("other.server", 3306)
) as server:
{do some stuff}
如果我单独登录“my.server”并在对话框中输入我的私钥密码以供 ssh-agent 存储,然后然后运行上面的代码,它会按预期工作。
如果我运行代码 之前已经登录到服务器,我会收到此错误:ValueError: No password or public key available!(但密码在那里 - ssh_private_key_password - 否?)
无论ssh_pkey 是指向公钥还是私钥,都会发生这种情况。
这里可能会发生什么?我对 SSHTunnelForwarder 的预期参数有误解吗?关于密钥和密码的更基本的东西?
【问题讨论】:
-
您好,您找到问题所在了吗?我们遇到了同样的问题!
-
您运行此脚本的用户是否与拥有密钥的用户相同?
-
可能问题出在私钥的格式上。私钥文件
id_rsa应该以-----BEGIN RSA PRIVATE KEY-----开头,而不是-----BEGIN OPENSSH PRIVATE KEY-----的标题。
标签: python private-key ssh-tunnel ssh-agent