如何阻止paramiko使用〜/ .ssh / id_rsa加密密钥?

d33*_*tah 3 paramiko

我不断收到以下错误:

Traceback (most recent call last):
  File "/home/d/workspace/paramiko/connect_test/main.py", line 127, in connect
    cStringIO.StringIO(local_settings.RSA_KEY)
  File "/home/d/virtualenv/lib/python2.7/site-packages/paramiko/client.py", line 380, in connect
    look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
  File "/home/d/virtualenv/lib/python2.7/site-packages/paramiko/client.py", line 603, in _auth
    raise saved_exception
paramiko.ssh_exception.PasswordRequiredException: Private key file is encrypted
Run Code Online (Sandbox Code Playgroud)

关键是我添加了我想用这种方式使用的密钥,并且它没有加密:

                ssh_client.connect(
                    node_ip, username=local_settings.USERNAME,
                    pkey=paramiko.RSAKey.from_private_key(
                        cStringIO.StringIO(local_settings.RSA_KEY)
                    )
                )
Run Code Online (Sandbox Code Playgroud)

我认为它正在查看我的加密私钥〜/ .ssh / id_rsa。有什么办法可以阻止我这样做吗?

小智 5

Paramiko尝试回退到您的~/.ssh/密钥,并且仅报告最后一个错误。您可以通过传递look_for_keys=False给来禁用后备行为connect(),这将引发一个更有用的异常。