windows 上 Python 通过 SCP 连接linux server
环境搭建
需要安装以下包
- pycrypto (需要VC编译环境)
- paramiko (SSH的基础)
- scpclient-0.4 (paramiko 上的一个wrapper)
在安装pycrypto时我遇到了报错:
error: command ‘mt.exe’ failed with exit status 31
解决办法:
编辑 %PYTHON_INSTALL%\Lib\distutils, edit msvc9compiler.py,
在行 ld_args.append(‘/MANIFESTFILE:’ + temp_manifest) 后面添加
ld_args.append(‘/MANIFESTFILE’ )
运行
参考 scpclient 的说明文档:https://pypi.python.org/pypi/scpclient
如果想了解ssh的用法,可以看scpclient的源码,很简单,就一个python文件。
我在运行scpclient例程时遇到两个问题
- unknown host 问题:由于要连接的linux host没有添加到win7的knownhost 里(不知道怎么加),paramiko默认状态会拒绝连接。因此需要设置:ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- SSHClient的connect()函数需要key_filename。其实这个参数可以省略。另外,我也可以在linux上生成一对key,考到win上使用