为了账号安全,请及时绑定邮箱和手机立即绑定

使用凭据列表批量登录和执行任务

使用凭据列表批量登录和执行任务

撒科打诨 2023-12-12 10:22:23
我有一个名为 creds.txt 的文本文件,格式如下。我希望能够向我的 ssh 服务器提供带有凭据的文本文件,并运行所有这些服务器的命令,以便更轻松地设置大量 ssh 服务器。username:password:ip我运行了下面的代码import paramikowith open('creds.txt', 'r') as file:    for line in file:        usrname, passwd, ip = line.split(':')        print("[!] trying " + usrname + " and " + passwd + " for " + ip)        ssh_client = paramiko.SSHClient()        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)        ssh_client.connect(hostname=ip, username=usrname, password=passwd, port=22)        command = "ls"        stdin,stdout,stderr = ssh_client.exec_command(command)        stdout = stdout.readlines()        print (stdout)        print("[+]connection succsessfull to " + ip + " with " + usrname + ":" + passwd)        paramiko.agent.Agent.close我收到错误Traceback (most recent call last):  File "c:/Users/XXXX/Desktop/code projects/XXXX/XXXXXXXX.py", line 9, in <module>    ssh_client.connect(hostname=ip, username=usrname, password=passwd, port=22)  File "E:\python\lib\site-packages\paramiko\client.py", line 340, in connect    to_try = list(self._families_and_addresses(hostname, port))  File "E:\python\lib\site-packages\paramiko\client.py", line 203, in _families_and_addresses    addrinfos = socket.getaddrinfo(  File "E:\python\lib\socket.py", line 918, in getaddrinfo    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):socket.gaierror: [Errno 11001] getaddrinfo failedPS C:\Users\Jaden\Desktop\code projects\net>我在没有文本文件代码的情况下运行了它,它工作得很好,但是当我添加文件解释功能时,它停止工作。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

我认为问题在于,当您拆分文本时,您没有从 ip 变量中删除剩余的空格。

文件中的行如下所示: root:pass:127.0.0.1\r\n

最后一部分是新行,所以我认为问题是你没有删除它,所以它无法连接到 IP。尝试使用strip()rstrip()函数来删除它。

ip.rstrip()


查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信