我想使用 paramiko 通过公钥身份验证通过 ssh2 连接到远程主机,我按以下步骤设置 key :
在本地:
Local> ssh-keygen
Generating 1024-bit dsa key pair
9 o.oOo..oOo.o
Key generated.
Passphrase :
Again :
Private key saved to /home/local/.ssh2/id_dsa_1024_a
Public key saved to /home/local/.ssh2/id_dsa_1024_a.pub
Local> cd ~/.ssh2
Local> echo "IdKey id_dsa_1024_a" > identification
Local> scp id_dsa_1024.pub remote@remote-host:~/.ssh2/local.pub
在远程:
Remote> ssh-keygen
...omit...
Remote> cd ~/.ssh2
Remote> echo "Key local.pub" > authorization
完成上述操作后,我可以使用 ssh remote@remote-host
登录。
然而,我未能使用python的paramiko模块登录远程主机:
conn = paramiko.SSHClient()
conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
conn.connect(remote-host, 22, username=remote,password='')
总是报错:认证失败。
我很困惑。 :(
最佳答案
您是否尝试过在连接时设置 key_filename
选项?我不确定 paramiko 是否会像 SSH CLI 客户端那样自动查看您在 ~/.ssh
中的私钥。
关于python - 我可以手动 ssh2 到远程主机,但 paramiko 不能,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965806/