如何使用 python (windows native install - ActivePython) 进行安全复制。不幸的是 pexpect 模块仅适用于 unix,我们不希望在本地使用 cygwin。我编写了一个基于 pscp.exe win 工具的脚本 - 但由于指纹主机 ID 始终在第一次执行时停止。并且还没有找到关闭它的选项。远程主机在 cygwin(win 2003 服务器)上运行 ssh-server。
谢谢
我强烈建议您使用密钥而不是密码。如果您正确使用 ssh 密钥,则不需要使用 expect,因为 scp 命令不会要求任何用户输入。如果你安装了命令行 ssh,你可以像这样创建一个密钥:
ssh-keygen -t dsa
然后只需按照提供的说明进行操作,并将密钥保存到默认位置。如果您在上面输入密码,则需要使用某种 ssh 代理,无论是命令行 ssh-agent 还是 windows 上的 pagent。您还可以使用 putty 套件的 puttygen 创建 ssh 密钥。
要设置用于身份验证的密钥,只需将 id_dsa.pub 的副本放在要 scp 到文件 ~/.ssh/authorized_keys 的主机上。
http://pypi.python.org/pypi/ssh4py
SCP 示例:http ://blog.keyphrene.com/keyphrene/index.php/2008/09/18/13-scp
Twisted Conch支持 ssh 和 sftp。
您希望如何提供身份验证数据?最简单的方法是创建一个密钥,并确保它在服务器的接受主机列表中。这样 scp 将自动使用私钥/公钥对进行身份验证,并且“正常工作”。
这是一个关于如何创建和上传密钥的方便教程。当然,这假设您对服务器具有必要的管理员访问权限。