通过ssh远程运行命令

时间:2014-07-23 15:53:26

标签: ssh automation passwords

我需要将zip文件的副本自动复制到远程Linux机器,然后将该文件解压缩到用户的主目录。

假设我们有user1和user2,user1是真人但没有主目录,user2是具有主目录但不能直接获得shell访问主机的应用程序用户。获取user2的shell的机制是以user1 ssh到框,然后su到user2。 (请不要通过对此设置的评论,因为我为大公司工作,我无法改变这方面,它由IT安全决定,而不是讨论)。

我想用

scp ziptocopy.zip user1@hostname:/var/tmp/

但由于我在远程主机上没有任何地方存储用户1的密钥文件,我不能使用公钥/私钥对来执行此操作,有人可以建议这样做吗?

下一篇文章更加棘手,因为我想ssh为user1,然后su为user2并运行

unzip /var/tmp/ziptocopy.zip

关于我如何做到这一点的任何建议?我做了一个搜索,发现了一个使用expect的例子,这有scp的潜力,但我不能让它工作,但我怎么能期望应付2个密码提示?

由于

1 个答案:

答案 0 :(得分:0)

我会研究使用Python和pexpect / pxssh模块。这些天pexpect是以前使用Expect处理的自动化任务的一个不错的选择。

有关SSH会话编写脚本的示例代码,请参阅此答案:

How to make a ssh connection with python?