我正在使用Paramiko通过ssh连接到服务器.
基本身份验证运行良好,但我无法理解如何连接公钥.
当我用putty连接时,服务器告诉我这个:
Using username "root".
Authenticating with public key "rsa-key@ddddd.com"
Passphrase for key "rsa-key@ddddd.com": [i've inserted the passphrase here]
Last login: Mon Dec 5 09:25:18 2011 from ...
Run Code Online (Sandbox Code Playgroud)
我用这个ppk文件连接到它:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: rsa-key@dddd.com
Public-Lines: 4
[4 lines key]
Private-Lines: 8
[8 lines key]
Private-MAC: [hash]
Run Code Online (Sandbox Code Playgroud)
使用基本身份验证,我得到的错误(来自日志)是:
DEB [20111205-09:48:44.328] thr=1 paramiko.transport: userauth is OK
DEB [20111205-09:48:44.927] thr=1 paramiko.transport: Authentication type (password) not permitted.
DEB [20111205-09:48:44.927] thr=1 paramiko.transport: Allowed methods: ['publickey', 'gssapi-with-mic']
Run Code Online (Sandbox Code Playgroud)
我试图包含那个ppk文件并设置为auth_public_key,但是没有用.
你能帮助我吗?
我正在尝试开始使用Paramiko库,但是当我尝试连接以下简单程序时,库就会抛出异常:
import paramiko
ssh = paramiko.SSHClient()
ssh.connect('127.0.0.1', username='boatzart', password='mypassword')
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Traceback (most recent call last):
File "test.py", line 6, in <module>
ssh.connect('127.0.0.1')
File "build/bdist.macosx-10.7-intel/egg/paramiko/client.py", line 316, in connect
File "build/bdist.macosx-10.7-intel/egg/paramiko/client.py", line 85, in missing_host_key
paramiko.SSHException: Unknown server 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
无论我尝试哪种服务器都会发生这种情况
我正在尝试编写一个小型 Python 程序来检查 SSH 服务器是否允许密码身份验证。这是目前的计划:
import base64
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('ssh.example.com', username='strongbad', password='thecheat')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
print('... ' + line.strip('\n'))
client.close()
Run Code Online (Sandbox Code Playgroud)
这个想法是 grep 输出或稍后try catch在connect语句周围放置一个块。
然而,我的问题是,我运行该程序的某些系统可以通过存储在~/.ssh. 在这些情况下,连接只会成功(我想避免这种情况)。
那么,问题来了:有人知道强制Paramiko(或其他SSH 客户端)使用密码的方法吗?
谢谢