3

我正在尝试通过 Python 脚本通过 SSH 连接到服务器。目前我正在尝试 paramiko。我在客户端和服务器之间设置了一个公钥,所以我不需要密码。我目前正在使用以下代码:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('192.168.56.102', 'oracle', None, '~/.ssh/id_rsa')
stdin, stdout, stderr = ssh.exec_command('ls')

但是当运行这个时,我得到了错误

[Errno -8] ai_socktype 不支持服务名

有什么帮助吗?

4

3 回答 3

1

您只需指定参数即可。不需要添加端口号(如果可以使用默认端口号)。

根据connect的定义,您的示例将如下所示:

ssh.connect('192.168.56.102', username='oracle', password=None, key_filename='~/.ssh/id_rsa')
于 2014-08-19T15:07:20.257 回答
0

这是通过添加端口号作为参数解决的!

于 2013-04-25T10:56:16.123 回答
0

基本上这会抱怨 ai_socktype 如果您跳过任何参数但没有在您跳过的参数之后明确命名参数。在这种情况下,问题在于参数“用户名”是第二个参数,但不是“用户名='oracle”。这也是添加端口号修复它的原因(然后没有参数被跳过)

于 2017-09-15T22:18:26.723 回答