Używając mojego pierwszego skryptu paramiko, mamy serwer konsoli opengear, więc staram się zautomatyzować konfigurację dowolnego urządzenia, które do niego podłączymy.Paramiko - ssh na konsolę serwera, po naciśnięciu return dla skryptu, aby kontynuować
Otwarta biega nasłuchuje połączeń ssh na portach, na przykład urządzenie w porcie 1 byłoby 3001. Łączę się z urządzeniem na porcie 8, które działa i działa mój skrypt, ale z jakiegoś powodu, po tym, jak dostaję wiadomość "Ustanowiona sesja interaktywnego SSH", muszę nacisnąć klawisz return sesji, aby ją uruchomić (mam sesję ssh i skrypt też ją udostępnia).
Po prostu czeka tam, aż uderzę powrót, próbowałem wysyłać powroty, jak widać, ale nie działają, działa tylko ręczny zwrot, co jest dziwne, ponieważ technicznie są one tym samym?
import paramiko
import time
def disable_paging(remote_conn):
'''Disable paging on a Cisco router'''
remote_conn.send("terminal length 0\n")
time.sleep(1)
# Clear the buffer on the screen
output = remote_conn.recv(1000)
return output
if __name__ == '__main__':
# VARIABLES THAT NEED CHANGED
ip = '192.168.1.10'
username = 'root'
password = 'XXXXXX'
port = 3008
# Create instance of SSHClient object
remote_conn_pre = paramiko.SSHClient()
# Automatically add untrusted hosts (make sure okay for security policy in your environment)
remote_conn_pre.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
# initiate SSH connection
remote_conn_pre.connect(ip, username=username, password=password,port=port, look_for_keys=False, allow_agent=False)
print "SSH connection established to %s" % ip
# Use invoke_shell to establish an 'interactive session'
remote_conn = remote_conn_pre.invoke_shell()
print "Interactive SSH session established"
time.sleep(1)
remote_conn.send("\n")
# Strip the initial router prompt
#output = remote_conn.recv(1000)
# See what we have
#print output
# Turn off paging
#disable_paging(remote_conn)
# clear any config sessions
is_global = remote_conn.recv(1024)
if ")#" in is_global:
remote_conn.send("end\n")
time.sleep(2)
# if not in enable mode go to enable mode
is_enable = remote_conn.recv(1024)
if ">" in is_enable:
remote_conn.send("enable\n")
time.sleep(1)
remote_conn.send("conf t\n")
remote_conn.send("int g0/0/1\n")
remote_conn.send("ip address 192.168.1.21 255.255.255.0\n")
remote_conn.send("no shut\n")
remote_conn.send("end\n")
# Wait for the command to complete
time.sleep(2)
remote_conn.send("ping 192.168.1.1\n")
time.sleep(1)
output = remote_conn.recv(5000)
print output
logowanie nie jest zdefiniowane. czy muszę coś dodać? również ive ntoiced, że pierwszy powrót carrige działa, oglądam konsolę i widzę ją, a następnie robi pauzę, póki nie trafię na kolejny skrypt, następnie uruchamia – AlexW
Dodałem instrukcję importu. –
Nie znaleziono obsługi dla rejestratora "paramiko.transport" – AlexW