Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
难以在windows上安装python ssh库(ssh已替换为“paramiko”)_Python_Ssh_Pycrypto - Fatal编程技术网

难以在windows上安装python ssh库(ssh已替换为“paramiko”)

难以在windows上安装python ssh库(ssh已替换为“paramiko”),python,ssh,pycrypto,Python,Ssh,Pycrypto,我将把我的问题和答案都放在这里,因为我很难弄明白。(我也开始尝试安装“ssh”库,但它已被具有相同功能的“paramiko”库取代。我可能错过了一个替换项,请原谅。) 问题:我需要在Windows7系统上安装“paramiko”库 Pip和easy_install在尝试安装“Crypto”模块时都会出现错误 我在涉及visualc和visualstudio的许多盲道上都没有成功 答复:(分两部分) 1) 从二进制文件安装加密库,如下所示: http://www.voidspace.org.uk/

我将把我的问题和答案都放在这里,因为我很难弄明白。(我也开始尝试安装“ssh”库,但它已被具有相同功能的“paramiko”库取代。我可能错过了一个替换项,请原谅。)

问题:我需要在Windows7系统上安装“paramiko”库

Pip和easy_install在尝试安装“Crypto”模块时都会出现错误

我在涉及visualc和visualstudio的许多盲道上都没有成功

答复:(分两部分) 1) 从二进制文件安装加密库,如下所示:

http://www.voidspace.org.uk/python/modules.shtml#pycrypto
这将安装加密库,但大小写不同于paramiko库所期望的大小写。所以我在这里学到了一个小技巧:
http://stackoverflow.com/questions/19623267/importerror-no-module-named-crypto-cipher
通过用户“pho”的回答将以下行添加到python程序中:

import crypto
import sys
sys.modules['Crypto'] = crypto
import crypto
import sys
sys.modules['Crypto'] = crypto
现在我可以安装并运行paramiko库了。我希望这能帮助其他人更快地找到解决方案。

回答:(分两部分) 1) 从二进制文件安装加密库,如下所示:

http://www.voidspace.org.uk/python/modules.shtml#pycrypto
注意:“paramiko”库已经替换了“ssh”,所以这个答案反映了

这将安装加密库,但大小写不同于paramiko库所期望的大小写。所以我在这里学到了一个小技巧:

http://stackoverflow.com/questions/19623267/importerror-no-module-named-crypto-cipher
通过用户“pho”的回答,将这些行添加到python程序中:

import crypto
import sys
sys.modules['Crypto'] = crypto
import crypto
import sys
sys.modules['Crypto'] = crypto
现在我可以安装并运行paramiko库了。我希望这能帮助其他人更快地找到解决方案

这是一个好的开始。我的下一个目标是弄清楚如何得到正确的钥匙。如果你像我一样,你可以使用putty和它的keygen实用程序进行密钥管理。而且效果很好!但它将其私钥保存在一个与paramiko所期望的不同的文件中。但puttygen也提供了一个解决方案

在puttygen中打开*.ppk文件。 到转换->导出OpenSSH密钥 将私钥另存为id_rsa(当然是在.ssh目录中)。(我不确定是否需要默认名称。请尝试其他内容并添加注释。)

现在,帕拉米科将能够自动找到它

这是我的脚本

import sys
import crypto
sys.modules['Crypto'] = crypto
import paramiko

knownHosts  = 'C:/Users/Skip Huffman/.ssh/known_hosts'
keyFileName     = 'C:/Users/Skip Huffman/.ssh/id_rsa'
hostName    = "mcsremotetest1.cnn.vgtf.net"
userName    = "<username matching keypair>"

client = paramiko.SSHClient()
client.load_system_host_keys(knownHosts)
client.connect(hostName, username=userName)
stdin, stdout, stderr = client.exec_command('ls')
print "Standard Error: ", stderr.readlines()
print "Standard Output: ", stdout.readlines()
导入系统 导入加密 系统模块['Crypto']=加密 进口帕拉米科 knownHosts='C:/Users/Skip Huffman/.ssh/known_hosts' keyFileName='C:/Users/Skip Huffman/.ssh/id\u rsa' hostName=“mcsremotest1.cnn.vgtf.net” userName=“” client=paramiko.SSHClient() 客户端。加载\u系统\u主机\u密钥(已知主机) client.connect(主机名,用户名=用户名) stdin,stdout,stderr=client.exec_命令('ls')) 打印“标准错误:”,stderr.readlines() 打印“标准输出:”,stdout.readlines()
有了一个合适的匹配密钥对,现在应该可以了。对我来说是的。(当然要替换正确的用户名。)

注意,您几乎肯定希望安装
paramiko
,而不是
ssh
ssh
paramiko
的一个分支,它现在被合并到上游而未被维护:谢谢。我打算更新后,我得到了所有的工作正常为我。包括帕拉米科的变化。现在我正在努力使用RSA密钥。一旦我解决了这个问题,我会改进这个问题和答案。(我想至少马上把第一部分拿出来,这样我以后就不会忽视它,也不会让别人花费我在上面的所有时间。)