难以在windows上安装python ssh库(ssh已替换为“paramiko”)
我将把我的问题和答案都放在这里,因为我很难弄明白。(我也开始尝试安装“ssh”库,但它已被具有相同功能的“paramiko”库取代。我可能错过了一个替换项,请原谅。) 问题:我需要在Windows7系统上安装“paramiko”库 Pip和easy_install在尝试安装“Crypto”模块时都会出现错误 我在涉及visualc和visualstudio的许多盲道上都没有成功 答复:(分两部分) 1) 从二进制文件安装加密库,如下所示:难以在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/
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密钥。一旦我解决了这个问题,我会改进这个问题和答案。(我想至少马上把第一部分拿出来,这样我以后就不会忽视它,也不会让别人花费我在上面的所有时间。)