<div dir="ltr">Salve a tutti,<div>sono nuovo di python e finora sono riuscito a cavarmela da autodidatta.</div><div>Ho trovato uno script (che fa uso di paramiko) e l'ho modificato secondo mie esigenze. Avevo necessità di testare degli accessi SSH (con user e pwd già cablata) partendo da un array e mettendo</div><div>il tutto dentro un ciclo, ma sembra non andare, l'errore che leggo è il seguente:</div><div><div><br></div><div>Could not SSH to ['localhost', '127.0.0.1'], waiting for it to start</div><div>Could not connect to ['localhost', '127.0.0.1']. Giving up</div></div><div><br></div><div>Sembra non prendere i valori host uno per volta, ma tutti insieme, ecco lo script:</div><div><br></div><div><div>import sys</div><div>import time</div><div>import select</div><div>import paramiko</div><div>i = 1</div><div>host = ['localhost', '127.0.0.1', '192.168.2.2']</div><div>for item in host:</div><div>        while True:</div><div>                print 'Trying to connect to %s (%i/3)' % (host, i)</div><div>                try:</div><div>                        ssh = paramiko.SSHClient()</div><div>                        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())</div><div>                        ssh.connect(host, port=22, username='centos', password='reverse')</div><div>                        print "Connected to %s" % host</div><div>                        break</div><div>                except paramiko.AuthenticationException:</div><div>                        print "Authentication failed when connecting to %s" % host</div><div>                        sys.exit(1)</div><div>                except:</div><div>                        print "Could not SSH to %s, waiting for it to start" % host</div><div>                        i += 1</div><div>                        time.sleep(2)</div><div>                # If we could not connect within time limit</div><div>                if i == 3:</div><div>                        print "Could not connect to %s. Giving up" % host</div><div>                        sys.exit(1)</div><div>        # Send the command (non-blocking)</div><div>        stdin, stdout, stderr = ssh.exec_command("uname")</div><div>        # Wait for the command to terminate</div><div>        while not stdout.channel.exit_status_ready():</div><div>                # Only print data if there is data to read in the channel</div><div>                if stdout.channel.recv_ready():</div><div>                        rl, wl, xl = select.select([stdout.channel], [], [], 0.0)</div><div>                        if len(rl) > 0:</div><div>                                # Print data from stdout</div><div>                                print '-------------------------------'</div><div>                                print stdout.channel.recv(1024),</div><div>        # Send the command (non-blocking)</div><div>        stdin, stdout, stderr = ssh.exec_command("hostname")</div><div>        # Wait for the command to terminate</div><div>        while not stdout.channel.exit_status_ready():</div><div>                # Only print data if there is data to read in the channel</div><div>                if stdout.channel.recv_ready():</div><div>                        rl, wl, xl = select.select([stdout.channel], [], [], 0.0)</div><div>                        if len(rl) > 0:</div><div>                                # Print data from stdout</div><div>                                print stdout.channel.recv(1024),</div><div>        # Send the command (non-blocking)</div><div>        stdin, stdout, stderr = ssh.exec_command("hostname -I")</div><div>        # Wait for the command to terminate</div><div>        while not stdout.channel.exit_status_ready():</div><div>                # Only print data if there is data to read in the channel</div><div>                if stdout.channel.recv_ready():</div><div>                        rl, wl, xl = select.select([stdout.channel], [], [], 0.0)</div><div>                        if len(rl) > 0:</div><div>                                # Print data from stdout</div><div>                                print stdout.channel.recv(1024),</div><div>                        print '-------------------------------'</div><div>        #</div><div>        # Disconnect from the host</div><div>        #</div><div>        print "Command done, closing SSH connection."</div><div>        ssh.close()</div></div><div><br></div><div>Qualcuno mi illumina?</div><div><br></div><div><br></div></div>