Python Paramiko 和 IPV6 SSH

Bha*_*ara 2 python ssh paramiko

我必须编写一个脚本,使用 SSH 在远程机器上执行一些命令。我为此使用了 paramiko,只要我使用 IPv4 寻址,一切都可以正常工作。我不得不切换 IPv6 寻址,但似乎无法连接 Paramiko 客户端。

import paramiko
s = paramiko.SSHClient()
ip6_addr = 'fe80::1112:bcde:789a:1234'
s.connect (ip6_addr, username='foo', password='bar')
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 290, in connect
    sock.connect(addr)
  File "<string>", line 1, in connect
socket.error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)

有没有关于如何为 paramiko 指定 ip6 地址的示例?

Sam*_*uel 5

您还必须指定接口名称。

ip6_addr = 'fe80::1112:bcde:789a:1234%<interface>'
Run Code Online (Sandbox Code Playgroud)

以下示例是有效的 IPv6:

ip6_addr = 'fe80::1112:bcde:789a:1234%eth0'
Run Code Online (Sandbox Code Playgroud)