close
小篇利用python寫一個SSH連線
結果它一般linux不一樣
沒辦法用
stdin, stdout, stderr = ssh.exec_command(command)
又很多篇都用這個例子,誤我很時間
最後改寫如下,用來取代putty的ssh連線的功能
import paramiko import time #comand為命令的副程式 def command(comand): channel.send(comand) channel.send("\n") time.sleep(5) if comand =="tree" or "uci" or "sh": res = channel.recv(65535).decode('utf8') else: res = channel.recv(65535) print(res) print('**********************************************************') # 定義 syslogin.log來記錄 paramiko.util.log_to_file('syslogin.log') # 定義 ssh 為使用 paramiko.SSHClient() ssh = paramiko.SSHClient() # 設定自動加入 遠端主機的 SSH Key ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 設定連接 ssh 的主機名稱, 使用者名稱, s密碼 ssh.connect('192.168.2.100', port=22,username='araknis',password='araknis', timeout=4) print('start connect to dut') print("===========================welcom to CLI===============================") #一開始會卡住 ,作一些處理 stdin, stdout, stderr = ssh.exec_command('',get_pty=True) #print(stdin.channel.eof_received) timeout = 5 endtime = time.time() + timeout while not stdout.channel.eof_received: time.sleep(1) if time.time() > endtime: stdout.channel.close() break #stdout.read() #stdout.flush() print(stdout.read()) #nbytes = 0 #time.sleep(2) #print("===========================welcom to CLI===============================") channel = ssh.invoke_shell() T=True while (T==True): com=input(" please input command: ") command(str(com)) time.sleep(2) q="reboot" q1="logout" if(str(com)== q or str(com)== q1 ) : T=False print(T) channel.close() ---------------------------------result--------------------------------------------- C:\Users\800213\PycharmProjects\firefoxdemo\venv\Scripts\python.exe "C:/Users/800213/PycharmProjects/firefoxdemo/ssh toputty.py" start connect to dut ===========================welcom to CLI=============================== b'\x1b[1;31m*** Hi araknis (Privilege: Admin), welcome to use cli(V-1.9.11) ***\r\n\x1b[m---========= Commands Help =========---\r\n stat -- Status\r\n sys -- System\r\n wless2 -- 2.4G-Wireless\r\n wless5 -- 5G-Wireless\r\n mgmt -- Management\r\n tree -- Tree\r\n help -- Help\r\n reboot -- Reboot\r\n logout -- Logout\r\n\x1b[1;31maraknis\x1b[m@\x1b[1;36man700outdoor\x1b[m:\x1b[1;32m/\x1b[m# ' please input command: help *** Hi araknis (Privilege: Admin), welcome to use cli(V-1.9.11) *** ---========= Commands Help =========--- stat -- Status sys -- System wless2 -- 2.4G-Wireless wless5 -- 5G-Wireless mgmt -- Management tree -- Tree help -- Help reboot -- Reboot logout -- Logout araknis@an700outdoor:/# help ---========= Commands Help =========--- stat -- Status sys -- System wless2 -- 2.4G-Wireless wless5 -- 5G-Wireless mgmt -- Management tree -- Tree help -- Help reboot -- Reboot logout -- Logout araknis@an700outdoor:/# ********************************************************** True please input command: sys sys System ---========= Commands Help =========--- opmode -- Operation mode ip -- IP settings stp -- Spanning tree settings help -- Help exit -- Exit araknis@an700outdoor:/sys# ********************************************************** True please input command: exit exit araknis@an700outdoor:/# ********************************************************** True please input command: help help ---========= Commands Help =========--- stat -- Status sys -- System wless2 -- 2.4G-Wireless wless5 -- 5G-Wireless mgmt -- Management tree -- Tree help -- Help reboot -- Reboot logout -- Logout araknis@an700outdoor:/# ********************************************************** True please input command: uci uci uci> ********************************************************** sTrue please input command: h h /bin/sh: h: not found uci> ********************************************************** True please input command: sh sh BusyBox v1.19.4 (2018-09-05 00:39:25 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. ~ # ********************************************************** True please input command: ifconfig ifconfig ath0 Link encap:Ethernet HWaddr 88:DC:96:5B:58:35 inet6 addr: fe80::8adc:96ff:fe5b:5835/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:103 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ath50 Link encap:Ethernet HWaddr 88:DC:96:5B:58:36 inet6 addr: fe80::8adc:96ff:fe5b:5836/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:146 (146.0 B) br-lan Link encap:Ethernet HWaddr 88:DC:96:5B:58:33 inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::8adc:96ff:fe5b:5833/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:289 errors:0 dropped:0 overruns:0 frame:0 TX packets:193 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:31192 (30.4 KiB) TX bytes:28908 (28.2 KiB) eth0 Link encap:Ethernet HWaddr 88:DC:96:5B:58:33 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:298 errors:0 dropped:8 overruns:0 frame:0 TX packets:191 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:36378 (35.5 KiB) TX bytes:28598 (27.9 KiB) Interrupt:4 eth1 Link encap:Ethernet HWaddr 88:DC:96:5B:58:34 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:5 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1453 (1.4 KiB) TX bytes:1453 (1.4 KiB) wifi0 Link encap:Ethernet HWaddr 88:DC:96:5B:58:35 inet6 addr: fe80::8adc:96ff:fe5b:5835/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:21819 errors:0 dropped:0 overruns:0 frame:0 TX packets:1634 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:2699 RX bytes:5153199 (4.9 MiB) TX bytes:321948 (314.4 KiB) Interrupt:47 Memory:b8100000-b8120000 wifi1 Link encap:Ethernet HWaddr 88:DC:96:5B:58:36 inet6 addr: fe80::8adc:96ff:fe5b:5836/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:2699 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:41 ~ # ********************************************************** True please input command: reboot reboot ~ # ********************************************************** False Process finished with exit code 0
全站熱搜