2016-11-09 4 views
0

sudo ssh-keygen -t rsa -b 4096でRSA鍵ペアを作成し、.sshフォルダにコピーしました。私はPythonのparamikoパッケージを使用しています。私のコードは次のとおりです。Python-Parmikoエラー: 'RSAKey'オブジェクトが反復不可 '

import paramiko 
k = paramiko.RSAKey.from_private_key_file('/home/username/.ssh/id_rsa', password='mypassphrase') 
s = paramiko.SSHClient() 
s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
conn = s.connect('remote_computer', username ='username', port=22, key_filename =k) 
command = 'sudo python ~/pythonscript.py' 
(stdin, stdout, stderr) = s.exec_command(command) 
s.close() 

しかし、私は、コードを実行しようとすると、私は次のエラーとトレースバックを取得しています:これは絶望的な私の葉以来

Traceback (most recent call last): 
File "pythonparamikoscript.py", line 6, in <module> 
conn = s.connect('remote_computer', username ='username', port=22, key_filename =k) 
File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 307, in connect 
look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host) 
File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 441, in _auth 
for key_filename in key_filenames: 
TypeError: 'RSAKey' object is not iterable 

ヘルプは、感謝されます。

答えて

0

connect()は異なる引数を受け付けます。

  • pkey (PKey)あなたのキーの位置と単なる文字列である
  • key_filename (str)
  • あなたのキーを割り当てる必要がある場所です。

ので

conn = s.connect('remote_computer', username ='username', port=22, pkey=k) 

が仕事をする必要があります実行しています。

+0

ありがとうございます! –

+0

@MrMeeseeksこれで問題が解決した場合は、この回答を解決策としてマークする必要があります。 – Jakuje

関連する問題