0

如何使用 python (windows native install - ActivePython) 进行安全复制。不幸的是 pexpect 模块仅适用于 unix,我们不希望在本地使用 cygwin。我编写了一个基于 pscp.exe win 工具的脚本 - 但由于指纹主机 ID 始终在第一次执行时停止。并且还没有找到关闭它的选项。远程主机在 cygwin(win 2003 服务器)上运行 ssh-server。

谢谢

4

5 回答 5

2

paramiko很漂亮。有关更多详细信息,请参阅此问题。

于 2009-04-08T13:00:19.160 回答
2

我强烈建议您使用密钥而不是密码。如果您正确使用 ssh 密钥,则不需要使用 expect,因为 scp 命令不会要求任何用户输入。如果你安装了命令行 ssh,你可以像这样创建一个密钥:

ssh-keygen -t dsa

然后只需按照提供的说明进行操作,并将密钥保存到默认位置。如果您在上面输入密码,则需要使用某种 ssh 代理,无论是命令行 ssh-agent 还是 windows 上的 pagent。您还可以使用 putty 套件的 puttygen 创建 ssh 密钥。

要设置用于身份验证的密钥,只需将 id_dsa.pub 的副本放在要 scp 到文件 ~/.ssh/authorized_keys 的主机上。

于 2009-04-08T18:02:33.130 回答
1

http://pypi.python.org/pypi/ssh4py

SCP 示例:http ://blog.keyphrene.com/keyphrene/index.php/2008/09/18/13-scp

于 2009-04-08T09:13:12.950 回答
1

Twisted Conch支持 ssh 和 sftp。

于 2009-04-08T13:39:42.280 回答
0

您希望如何提供身份验证数据?最简单的方法是创建一个密钥,并确保它在服务器的接受主机列表中。这样 scp 将自动使用私钥/公钥对进行身份验证,并且“正常工作”。

是一个关于如何创建和上传密钥的方便教程。当然,这假设您对服务器具有必要的管理员访问权限。

于 2009-04-08T09:00:39.063 回答