我有一個名為 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()
添加回答
舉報
0/150
提交
取消