如何用python批量分发本机的ssh公钥?

发布于 09-06 21:36 字数 236 浏览 29 评论 0

当我们使用ansible工具,默认是通过ssh的方式来进行远程控制。
需要使用类似 ssh-keygen -t rsa 的方式生成密钥对
然后再用ssh-copy-id 命令,将公钥文件分发给一台远程主机
然后输入一次远程主机的密码,这样便能使用ansible远程控制主机

那么如何用python完成这项工作呢?
主要是为了完成这么这项任务:

批量分发公钥,记录失败的主机,删除远程主机上的密钥信息等?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡水深流2022-09-13 21:36:41
#!/usr/bin/python 

import sys
import pexpect

ip = sys.argv[1]
password = sys.argv[2]
expect_list = ['(yes/no)', 'password:']

p = pexpect.spawn('ssh-copy-id %s' % ip)
try:
    while True:
        idx = p.expect(expect_list)
        print p.before + expect_list[idx],
        if idx == 0:
            print "yes"
            p.sendline('yes')
        elif idx == 1:
            print password
            p.sendline(password)
except pexpect.TIMEOUT:
    print >>sys.stderr, 'timeout'
except pexpect.EOF:
    print p.before
    print >>sys.stderr, '<the end>'

已经解决问题

难如初2022-09-13 21:36:41

ansible 就可以完成你说的任务啊。
如果你想更多使用 python 代码来控制流程,你可以使用另外一个自动化部署工具 fabric

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文