Тестирование отправки команд на устройства IoT, которые переводят пользователя в сценарий python вместо оболочки bash.
т.е. в / etc / passwd - admin: x: 1000: 0: admin: / home / admin: /home/admin/IoT.py
Так что нельзя использовать обычные bash exec_commands для общения со скриптом python. В основном, когда он подключается, ему нужно отправить командную строку и получить выходные данные. Ниже скрипт читает IP-адреса из текстового файла, как правильно отправлять и получать команды
#!/usr/bin/env python
import paramiko
import sys
def LogonSSH(ipAddress) :
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
for line in open(ipAddress, "r").readlines() :
ipAddr = line.strip()
username='admin'
password='admin'
try :
print "[+] Trying %s with username: %s password: %s " % (ipAddr, username, password)
ssh.connect(ipAddr, username=username, password=password)
except paramiko.AuthenticationException:
print "[x] %s - could not log in" % (ipAddr)
continue
stdin, stdout, stderr = ssh.exec_command('help')
stdin.flush()
stdin.write('help\n')
out = stdout.read()
stdin.flush()
print out
ssh.close()
break
if __name__ == "__main__" :
LogonSSH(sys.argv[1])