SSHTunnel 搜索默认私钥(id_rsa)而不是我指定的 ssh_pkey

Mar*_*ter 5 ssh-tunnel python-3.x

我正在使用 MacOS,系统配置中的某些内容不断告诉 pythonSSHTunnelForwarder使用我的默认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)
... )
Run Code Online (Sandbox Code Playgroud)

给我这个错误消息: 2022-03-23 13:15:35,715| ERROR | Password is required for key /Users/me/.ssh/id_rsa

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

我的~/.ssh/config

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
  IdentityFile ~/.ssh/test
Run Code Online (Sandbox Code Playgroud)

是的,我已经跑去ssh-add ~/.ssh/test添加这个密钥了。

还有什么能让它感到困惑呢?

小智 -1

如果您分配了其他键来创建连接,此错误消息并不重要,您可以插入更多日志来确认您的程序是否继续运行。

并确保 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)
Run Code Online (Sandbox Code Playgroud)

  • 我认为这并不能解决问题。我也希望错误不会发生(并被抑制),而不是说“好吧,无论如何它都可以工作!” (2认同)