私は動作する次の呼び出しを持っています(実際には a を発生させますがparamiko.AuthenticationException
、これは問題ありません):
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('example.com',username='root', password="aaa", look_for_keys=False, timeout=5)
パラメータをdictに変換したかった:
params = {
'hostname': 'example.com',
'port': 22,
'username': 'root',
'look_for_keys': False,
'timeout': 5
}
ssh.connect(params)
これにより、 が発生しTypeError: getaddrinfo() argument 1 must be string or None
ます。への引数を確認しましたssh.connect
>>> inspect.getargspec(ssh.connect)
ArgSpec(args=['self', 'hostname', 'port', 'username', 'password', 'pkey', 'key_filename', 'timeout', 'allow_agent', 'look_for_keys', 'compress', 'sock'], varargs=None, keywords=None, defaults=(22, None, None, None, None, None, True, True, False, None))
私の口述は私には良さそうです。
それにもかかわらず、最初の呼び出しは問題なく、エラーはソケット関連であるため、試しました
ssh.connect('example.com', 22, params)
を発生させparamiko.SSHException: No authentication methods available
ます。connect
これは、テストするパスワードやキーがないと解釈します。
dict をパラメーターとして受け入れるようにするにはどうすればよいですかssh.connect
(または実際には、dict を私のものと比較する必要があります)。
または、パラメーター文字列を「手動で」作成する以外に、パラメーターを渡す別のpythonicの方法がありますか(文字列を連結することにより、私にはひどいように見えます)?