【问题标题】:Python SSH using Popen使用 Popen 的 Python SSH
【发布时间】:2017-02-07 15:41:10
【问题描述】:

我如何ssh 使用Popen 在遇到此问题时默认回答是?

The authenticity of host '`XXXXX`' can't be established.
ECDSA key fingerprint is SHA256:LA2RqbdzD8Uxgi36KWOM12giS9T+ceOQYhYjVKReMks.
Are you sure you want to continue connecting (yes/no)?

这就是我正在尝试的

for IP in ['10.32.253.250']:
    remoteCall = subprocess.Popen(["ssh", "co_user@"+IP, "sudo svstat /etc/sv/nagios_CheckDisk_Alertz_daemon",], stdout=subprocess.PIPE, stderr=subprocess.PIPE);
    Response, err = remoteCall.communicate()
    if(re.search("authenticity of host", Response)):
        stdin.write('yes')
    print IP + "  " +Response

【问题讨论】:

  • 您应该使用pexpect 或专用的ssh 客户端,例如paramiko。
  • 不,不能使用 paramiko 等外部模块
  • No it's not possible to use ... - 为什么不呢?
  • 我会在我的本地尝试这个。但我在想我是否必须在我可能无权安装外部模块的外部盒子中运行这个脚本。另外,我可以接受多个答案?

标签: python ssh subprocess popen


【解决方案1】:

不确定 subprocess 是如何做到的,接下来是另一种方式,也许对你有帮助。仅供参考。

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.6", 22, "username", "password")
stdin, stdout, stderr = ssh.exec_command('ls') // your command here
content = stdout.readlines()
print content
ssh.close()

【讨论】:

    【解决方案2】:

    来自手册页:

    StrictHostKeyChecking

    如果此标志设置为“yes”,ssh(1) 将永远不会自动添加主机 ~/.ssh/known_hosts 文件的密钥,并拒绝连接到主机 其主机密钥已更改。这提供了最大程度的保护 特洛伊木马攻击,尽管当 /etc/ssh/ssh_known_hosts 文件维护不善或连接时 新主机频繁。此选项强制用户 手动添加所有新主机。如果此标志设置为“no”,ssh 将 自动将新的主机密钥添加到用户已知的主机文件中。如果这 标志设置为“询问”,新的主机密钥将被添加到已知用户 主机文件只有在用户确认这是他们真正的 想做,ssh会做

    如果您希望 ssh/scp 在不提示的情况下自动接受新密钥,您可以将 StrictHostKeyChecking 设置为“no”。在命令行上:

    scp -o StrictHostKeyChecking=no ...
    

    您还可以启用批处理模式:

    BatchMode
    

    如果设置为“yes”,密码短语/密码查询将被禁用。这 选项在没有用户的脚本和其他批处理作业中很有用 提供密码。论据必须是“是”或“否”。 默认值为“否”。如果 BatchMode=yes,ssh/scp 将失败而不是 提示(这通常是对脚本的改进)。

    【讨论】:

    • 这是解决方法,删除主机密钥提供的安全性。
    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 2011-09-12
    相关资源
    最近更新 更多