通过ssh远程运行commnd的选项

2024-04-26 13:19:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有许多测试服务器。这些测试服务器经常被重新映像,并且它们在重新映像后拥有相同的用户帐户和密码。我想编写一个python脚本,在其中一台服务器上通过ssh远程运行命令,而不提示用户输入密码,并收集命令的输出。在某些情况下,我想运行一个命令,获取输出,分析输出。在另一种情况下,我希望一次运行几个命令(可能运行一个脚本文件)。我读了很多关于使用第三方软件包(例如paramiko)远程运行命令的帖子。有没有一种推荐的方法可以在不使用其他包的情况下完成此任务?运行脚本的服务器可能没有安装包。你知道吗

或者我应该用pexpect?你知道吗

理想情况下,我希望使用subprocess并捕获输出(提供密码作为参数)。当然,我的脚本必须处理客户端第一次登录并提示向.ssh/knownhosts文件添加ssh密钥的情况。你知道吗

谢谢你, 艾哈迈德。你知道吗


Tags: 文件方法用户命令服务器脚本paramiko密码
1条回答
网友
1楼 · 发布于 2024-04-26 13:19:57

如果主机密钥安全不是问题(您在受信任的网络上等),您可以绕过主机检查。如果使用基于密钥的身份验证,则无需密码提示:

ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -oPasswordAuthentication=no \
  -n doctor@tardis some_cmd

这样,您就可以像在本地执行some_cmd一样使用subprocess。你知道吗

相关问题 更多 >