Pythonでライブラリparamikoを使ってSSH接続を行う際、Windows上で以下の問題が発生しました。
WindowsXP, ActivePython2.6, paramiko 1.7.5での問題
C:\>python ActivePython 2.6.3.7 (ActiveState Software Inc.) based on Python 2.6.3 (r263:75183, Oct 5 2009, 14:41:55) [MSC v.1500 32 bit (Intel)] on win32 >>> import paramiko >>> client = paramiko.SSHClient() >>> client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) >>> client.connect('192.168.1.1', username='torutk', password='xxxx') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "build\bdist.win32\egg\paramiko\client.py", line 283, in connect paramiko.SSHException: No suitable address family for 192.168.1.1
この"No suitable address"エラーで調べると、Windows上での問題があるようです。問題について言及しているWebページがいくつか見つかりました。
paramikoを使うsshモジュールは動作する
paramikoをさらに簡単に使えるようにしたsshが
http://plaza.rakutenco.jp/kugutsushi/diary/200806190001/
経由で
http://media.commandline.org.uk//code/ssh.txt
にあることを知り、これを入れてみると、SSHでのアクセスがエラーなく実現できました。
paramiko.SSHClientは使っておらず、paramiko.Transportを使ったものです。
>>> import ssh >>> s = ssh.Connection('192.168.1.1', 'torutk', password='xxxx') >>> s.execute('ls') ['Desktop\n', 'arc\n', 'backup\n', 'bin\n', 'rpm\n', 'workdir\n'] >>> s.close()