2012-05-31 44 views
2

我想在Linux机器上运行iPython内核,然后在Windows机器上远程连接它。 ipython内核工作正常,我可以在Linux机器上本地连接一个qtconsole。 在Windows上,我安装了ipython和paramiko作为它的ssh客户端。 我运行Windows 7的64位以下命令CMDiPython从Windows qtconsole ssh到远程iPython内核

D:\...\.ssh>ipython qtconsole --IPythonConsoleApp.sshserver='[email protected]:22' --IPythonConsoleApp.sshkey='myKey' --IPythonConsoleApp.password='1234' 

我得到以下错误:

[IPythonQtConsoleApp] Could not setup tunnels 
Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\IPython\frontend\consoleapp.py", line 289, in init_ssh 
    newports = tunnel_to_kernel(info, self.sshserver, self.sshkey) 
    File "C:\Python27\lib\site-packages\IPython\lib\kernel.py", line 245, in tunnel_to_kernel 
    if tunnel.try_passwordless_ssh(sshserver, sshkey): 
    File "C:\Python27\lib\site-packages\IPython\external\ssh\tunnel.py", line 87, in try_passwordless_ssh 
    return f(server, keyfile) 
    File "C:\Python27\lib\site-packages\IPython\external\ssh\tunnel.py", line 123, in _try_passwordless_paramiko 
    look_for_keys=True) 
    File "C:\Python27\lib\site-packages\paramiko\client.py", line 332, in connect 
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys) 
    File "C:\Python27\lib\site-packages\paramiko\client.py", line 493, in _auth 
    raise saved_exception 
SSHException: not a valid DSA private key file 

的关键是,即使RSA创建。

有没有人成功地从Windows机器远程连接到远程ipython内核?

回答

1

你说

The key is even created with *R*SA.

SSHException: not a valid *D*SA private key file

RSA和DSA是不同的算法。

要么创建一个DSA私钥文件,要么配置ipython使用RSA。

(我不熟悉ipython,所以不能通知具体问题,对不起。)

+0

好点。我认为它必须支持RSA,错误只是另一个问题的副作用。但是创建一个DSA密钥解决了这个例外。不过,我无法连接到远程iPython内核。该错误读取'***无法连接到主机名:22:TypeError('必须是字符串或缓冲区,而不是布尔')。我想我应该把它作为另一个问题。 – Choghazanbil

+0

我已经成功地将RSA密钥与paramiko一起使用。当我的一个参数关闭时,我收到了这个错误(它*应该*告诉我用户名错误/丢失,但是由于某种原因,它错误地关闭了密钥!)我会尝试进入python shell并使用它,看看改变一些参数是否改变了它的行为。 –