Hướng dẫn ssh python - trăn ssh

Tiếp series lập trình Python, xin giới thiệu với các bạn đoạn code Python 3 sau sử dụng thư viện paramiko có nhiệm vụ kết nối SSH tới 1 Remote Linux Server và chạy command “cat /etc/*-release” trên đó.paramiko có nhiệm vụ kết nối SSH tới 1 Remote Linux Server và chạy command “cat /etc/*-release” trên đó.

Kết nối SSH và chạy command sử dụng Python 3

import paramiko

ssh = paramiko.SSHClient()

# Auto add host to known hosts
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Connect to server
ssh.connect("192.168.2.100", username="root", password="123456")

# Do command
(ssh_stdin, ssh_stdout, ssh_stderr) = ssh.exec_command("cat /etc/*-release")

# Get status code of command
exit_status = ssh_stdout.channel.recv_exit_status()

# Print status code
print ("exit status: %s" % exit_status)

# Print content
for line in ssh_stdout.readlines():
    print(line.rstrip())

# Close ssh connect
ssh.close()

Kết quả chạy thử:

Hướng dẫn ssh python - trăn ssh

Cài đặt paramiko module cho Python 3

Để chạy đoạn code trên cần cài đặt Python Module/Package là paramiko, chúng ta cài thông qua pip3paramiko, chúng ta cài thông qua pip3

pip3 install paramiko

Khắc phục một số lỗi khi cài đặt paramiko

Fix lỗi:

CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.

pip3 install cryptography==2.4.2

Nguồn: vinasupport.com

Mô hÌnh mạng:

Hướng dẫn ssh python - trăn ssh

Gồm 1 máiy ảo kali linux, 1 bộ định tuyến cisco giả lập trênn gns3.

1. cấu hÌnh trên bộ định tuyến r1

1.1 CấU HÌNH SSH Phiên bản 2

#config Terminal (config) #Enable Mật khẩu & nbsp; mật khẩu (config) #line vty 0 4 (config-line)#mật khẩu & nbsp; 123 (config-line) #Login local (config-line) #exitconfig terminal
(config)#enable password password
(config)#line vty 0 4
(config-line)#password 123
(config-line)#login local
(config-line)#exit

. Phạm vi từ 360 đến 2048 cho các khóa mục đích chung của bạn. Chọn một mô đun chính lớn hơn 512 có thể mất vài phút. Làm thế nào nhiều bit trong mô đun [512]: 1024 (config) #IP SSH phiên bản 2username vnpro password 123
(config)#ip domain-name vnpro
(config)#crypto key generate rsa
The name for the keys will be: R1.vnpro .Choose the size of the key modulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes.How many bits in the modulus [512]: 1024
(config)#ip ssh version 2

R1 (config) #Interface fastEthernet 0/0interface fastEthernet 0/0

R1 (config-if) #IP Địa chỉ DHCPip address dhcp

R1 (config-if) #no shutdownno shutdown

R1(config-if)#exitexit

  • Thực hiện kiểm tra /a chỉ ip của giao diện fastethenet 0/0
  •  

FastEthernet0/0 là lên, giao thức dòng đã tăng

Địa chỉ Internet là 192.168.186.131/24192.168.186.131/24

Địa chỉ phát sóng là 255.255.255.255

Địa chỉ được xác định bởi DHCP

2. Trên Kali

Yêu cầu cần: Đạo

2.1 thực hiện kiểm tra kết nối ssh vào r1

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; SSH

+ Nếu gó lỗi

"

@@@@@@@@@ nhớ

@& nbsp; & nbsp; & nbsp; Cảnh báo: Nhận dạng máy chủ từ xa đã thay đổi! @

@@@@@@@@@ nhớ

@& nbsp; & nbsp; & nbsp; Cảnh báo: Nhận dạng máy chủ từ xa đã thay đổi! @

", thực hiện lệnh sau:ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.186.131"      

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ssh -keygen -f "/root/.ssh/known_hosts" -r "192.168.186.131" & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

+ Nếu Có lỗi "Không tìm thấy phương thức trao đổi khóa phù hợp. Ưu đãi của họ: Diffie-Hellman-group1-sha1":ssh -oKexAlgorithms=+diffie-hellman-group1-sha1

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; SSH -OKEXALGORITHMS =+Diffie-Hellman-Group1-Sha1

+ Nếu Có lỗi "Không tìm thấy mật mã phù hợp. Ưu đãi của họ: AES128-CBC, 3DES-CBC, AES192-CBC, AES256-CBC":

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệp Truy Cập Vào:vi /etc/ssh/ssh_config

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; vi/etc/ssh/ssh_config

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tệpso vào cuối:Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; CIPHERS AES128-CBC, 3DES-CBC, AES192-CBC, AES256-CBC

=> Thực hiện kiểm tra lại kết nối ssh

SSH -OKEXALGORITHMS =+Diffie-Hellman-Group1-Sha1

Tính xác thực của máy chủ '192.168.186.131 (192.168.186.131)' không thể được thiết lập.

Dấu vân tay chính của RSA là SHA256: HSXD9PAK+WFL1W2NXJPJDHFTKHYU2THI2MIIPK4SWBS.yes

Bạn có chắc là bạn muốn tiếp tục kết nối (có/không/[dấu vân tay])? Vâng

Cảnh báo: Đã thêm vĩnh viễn '192.168.186.131' (RSA) vào danh sách các máy chủ đã biết.username vnpro password 123)

R1>enable

Mật khẩu của mình: [NHập 123] (Tên người dùng & NBSP; VNPRO & NBSP; Mật khẩu & NBSP; 123)password] (enable password password)

  • Mật khẩu: [Mật khẩu NHập] (Bật mật khẩu & NBSP; Mật khẩu)

Kết nối ssh vào router r1 thàn

2.2 CÀi ĐặT thư Viện NetMiko

Yêu cầu: Máiy ảo kali truy cập đun internet.sudo apt-get install python3-netmiko

Thực hiện lệnh: sudo apt-get install python3-netmikoY để tiếp tục quá trình cài đặt)

Không

2.3 lập trình python sử dụng thư viện netmiko Để Th

2.3.1 Tệp Tạo Python & NBSP;

vi AddipInterface.py

2.3.2 Thiết Lập SSH

từ NetMiko Nhập khẩu Connecthandler

R1 = {'device_type': 'cisco_ios',

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Máy chủ': '192.168.186.131',

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Tên người dùng': 'VNPRO',

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Mật khẩu': '123',

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'mật khẩu bí mật', }

net_connect = Connecthandler (** R1)
                                    From netmiko import ConnectHandler


Gọi hanecthandler trong thư viện netmiko bằng dầmg lệNH: & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Từ NetMiko Nhập khẩu Connecthandler
+ device_type: các thiết bị của cisco thuờng là ‘cisco_ios’
+ host: IP của thiết bị
+ username: tên đăng nhập
+ password: mật khẩu đăng nhập
+ secret : mật khẩu enable
gán giá trị khi thực hiện hàm ConnectHandler cho biến net_connect .
Tới đây chúng ta đã thiết lập thành công SSH bằng netmiko .

. Gán Giá trị Khim thực hiện Hàm Connecthandler Cho Biến Net_Connect. Tới đNy chún ta đeo thiết lập thong

2.2.3 sử dụng một số ha

- Để GửI 1 Câu lệNH ĐếN Bộ định tuyến/Switch Quan SSH ở Chế độ Exec đặc quyền, Ta Dùnoutput = net_connect.send_command('sh ip int bri')

print(output)

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; output = net_connect.send_command ('sh ip int bri'))

 net_connect.enable()net_connect.enable()

- Để VÀO Chế độ EXEC đặc quyền, Ta DùnĐể gửi 1 câu lệnh đến Router/Switch ở config mode ta dùng hàm send_config_set(), VD:

net_connect.enable()

- Để GửI 1 CâU lệNH ĐếN Bộ định tuyến/Switch ở Cấu hình Chế độ ta

net_connect.send_config_set(addIPInterface)

Một số lệnh khác thường dùng : net_connect.save_config() - lưu cấu hình net_connect.find_prompt() - trả về tên host R/Sw net_connect.disconnect() - Đóng kết nối
net_connect.save_config() - lưu cấu hình
net_connect.find_prompt() - trả về tên host R/Sw
net_connect.disconnect() - Đóng kết nối

2.3.4 File cấu hình về kết quả thực thi

File addIPInterface.py như sau :addIPInterface.py như sau :

Hướng dẫn ssh python - trăn ssh

Thực hiện chạy file addIPInterface.py :

#python3 addIPInterface.py

Kết quả :

Hướng dẫn ssh python - trăn ssh

  • Ta đã thực hiện thành công cấu hình IP cho 1 interface trên router R1 thông qua sử dụng thư viện netmiko trong python.

Thông tin khác

  • » TỔNG QUAN VỀ MẠNG LAN (LOCAL AREA NETWORK) (21.02.2022)(21.02.2022)
  • » Mô tả cấu tạo, quá trình khởi động và các chế độ cấu hình của Router. (19.02.2022)(19.02.2022)
  • » Giới thiệu sách hay cần đọc CCNA Ops SECFND (CCNA SECURITY) (18.02.2022)(18.02.2022)
  • » Tổng quan về Ethernet Frame và MAC address (18.02.2022)(18.02.2022)
  • » Tổng quan về Collision domain, broadcast domain và cơ chế CSMA/CD (17.02.2022)(17.02.2022)
  • » TỔNG QUAN VỀ GIAO THỨC CDP VÀ LLDP (17.02.2022)(17.02.2022)
  • » Mô tả cơ chế hoạt động của giao thức ARP (16.02.2022)(16.02.2022)
  • » TỔNG QUAN VỀ CÁC LOẠI CÁP MẠNG VÀ TIÊU CHUẨN BẤM CÁP MẠNG (16.02.2022)(16.02.2022)