python-3.x - SSHTunnel 搜索默认私钥 (id_rsa) 而不是我指定的 ssh_pkey

标签 python-3.x ssh-tunnel

我正在使用 MacOS,我的系统配置中的某些内容不断告诉 python 的 SSHTunnelForwarder 使用我的默认 id_rsa 文件,而不是我在下面的配置中指定的文件:

>>> from sshtunnel import SSHTunnelForwarder
>>> db_tunnel = SSHTunnelForwarder(
...     ssh_host="localhost",
...     ssh_username="username",
...     ssh_port=1111,
...     ssh_pkey="~/.ssh/test",
...     remote_bind_address=("my-remote-database-domain", 3306)
... )

给我这个错误信息: 2022-03-23 13:15:35,715|错误 | key /Users/me/.ssh/id_rsa 需要密码

我在哪里可以编辑配置以覆盖对错误 key 的搜索?

我的~/.ssh/config:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
  IdentityFile ~/.ssh/test

是的,我已经运行 ssh-add ~/.ssh/test 来添加这个 key 。

还有什么可能混淆它?

最佳答案

如果您已分配其他 key 来创建连接,则此错误消息无关紧要,您可以插入更多日志以确认您的程序已继续运行。

并确保您的 MySQL 连接参数中的主机必须是 127.0.0.1 :

db = pymysql.connect(host="127.0.0.1",
                             user=user,
                             password=password,
                             database='db', port= db_tunnel.local_bind_port)

关于python-3.x - SSHTunnel 搜索默认私钥 (id_rsa) 而不是我指定的 ssh_pkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71592943/

相关文章:

python - 循环中定义的单元格变量

linux - 带腻子的双隧道

linux - 使用 A key 通过 B 框从 A ssh 到 C,而不将其存储在 B 机器上

django - 在 docker build 中运行 "/usr/local/bin/gunicorn"说 "stat/usr/local/bin/gunicorn: no such file or directory"

python - Python 装饰函数中的参数如何工作

python - 无法将 character_set_results 设置为 latin1

django - 从 Redis 读取和写入数据时不要序列化和反序列化(Pickle 和 Unpickle)数据

c - 如何将远程机器上实时运行的tcpdump结果导出到我电脑上的pcap文件中?

mysql - python使用sshtunnel无法连接mysql

python - PyCharm:通过 SSH 配置多跳远程解释器