gpt4 book ai didi

Python ssh 到具有用户名和密码的服务器,仅使用子进程登录

转载 作者:行者123 更新时间:2023-12-02 06:30:13 26 4
gpt4 key购买 nike

有一个名为 ip_addresses.txt 的文本文件,其中包含 3 个 IP 地址:

192.x.x.x
192.x.x.x
192.x.x.x

我想通过 ssh 连接到所有这些服务器并执行 shell 命令。这是代码片段:

ip = open("ip_addresses.txt", "r")
data = ip.readlines()
for ips in data:
ips = ips.strip("\n")
ssh = subProcess.Popen(["ssh", "%s" % ips], stdin = subprocerss.PIPE, stdout= subprocess.PIPE, stderr =subprocess.PIPE)
ssh.stdin.write("ls -ltr")
result = ssh.stdout.readlines()
if result == []:
error = ssh.stderr.readlines()
print >>sys.stderr, "ERROR: %s" %error
else:
print result

但是要通过 ssh 与这些服务器建立 ssh 连接,我还必须提供用户名密码,分别是rootsam@123。我怎样才能提供这些详细信息并检查是否成功登录服务器。

谢谢

最佳答案

你有很多选择。我立刻就能想到的两个:

  1. 设置基于 key 的身份验证机制以避免密码(您必须将公钥放在服务器的 authorized_keys 文件中。这里是 howto。)
  2. Pexpect

如果您确实想使用 Subprocess 本身,您是否尝试过 ssh.stdin.write("password\n")

关于Python ssh 到具有用户名和密码的服务器,仅使用子进程登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25708296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com