2016-10-21 3 views
2

私はsshtunnelを使ってリモートサーバーに接続し、そこからデータベースに接続しています。 sshtunnelが私がssh_private_key_passwordを認識していないように見えることを除いて、すべてがうまくいっています。私がすでに他の場所に入力していない限り(あるいは私はそれを提供している間違いです)。sshtunnelが秘密鍵のパスワードを認識しません

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の期待される議論について何か誤解していますか?キーとパスワードについてもっと根本的なものは何ですか?

+0

こんにちは、問題は何だったのですか?私たちは同じ問題を抱えています! – mrm

答えて

0

解決策が見つからない場合は、私の場合、問題は秘密鍵へのパスです。代わりに使用したの :

ssh_pkey="~/.ssh/id_rsa",

使用(例えば)絶対パス:、問題は鍵がsshtunnelに存在することを確認は、私の分析から

ssh_pkey="/Users/<your-user>/.ssh/id_rsa",

ました: https://github.com/pahaz/sshtunnel/blob/master/sshtunnel.py#L1018

os.path.exists(ssh_pkey)は、歌う~/.ssh/id_rsaパス

関連する問題