Trước tiên, cấu hình SSH version 2 trên thiết bị mạng
#config terminal
(config)#username admin password password
(config)#ip domain-name 192.168.1.1
(config)#enable password password
(config)#line vty 0 4
(config-line)#password 123
(config-line)#login
(config-line)#exit
(config)#crypto key generate rsa
1024
(config)#ip ssh version 2
***Trên Windows***
Cài đặt thư viện netmiko từ pip:
- Update pip : python –m pip install - -upgrade pip
- Sau khi update xong gõ: pip install netmiko ( hoặc nếu lỗi thì pip3 install netmiko)
- Thêm --user vào sau cùng nếu lỗi ( thêm sau lệnh pip install netmiko )
***Trên Linux***
-Bước 1: Kiểm tra kết nối SSH đến Router hoặc Switch đã ổn chưa
Lỗi:
Vô file ~/.ssh/known_hosts thêm dấu # vào đầu dòng host bị lỗi
Sau đó ssh lại
Nếu test SSH bị lỗi Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
thực hiện như sau:
sudo nano /etc/ssh/ssh_config
thêm 2 dòng vào cuối file
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
-Bước 2: cài đặt thư viện netmiko
Yêu cầu: đã cài đặt pip
sử dụng terminal :
pip install netmiko
Sau khi cài đặt xong ta tiến hành tạo file code
-Bước 3: Code
Thiết lập SSH:
gọi hàm ConnectHandler trong thư viện netmiko bằng dòng lệnh
From netmiko import ConnectHandler
trong đó hàm ConnectHandler bao gồm các giá trị:
+ 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
gắn hàm ConnectHandler vừa khai báo với giá trị net_connect
Tới đây chúng ta đã thiết lập thành công SSH bằng netmiko, có thể thêm đoạn code sau để xác thực việc kết nối
output = net_connect.find_prompt()
print(output)
Kết quả trả về:
Bắt đầu cấu hình:
Để gửi 1 câu lệnh đến Router/Switch qua SSH và nhận về kết quả ta dùng lệnh .send_commnad() để gửi câu lệnh “show ip int br”
Để gửi 1 câu lệnh đến Router/Switch ở mode config ta dùng lệnh .send_config_set
VD: cấu hình loopback 0 v ới ip 10.10.1.10/24 sau đó:
Kết quả trả về:
Một số lệnh khác thường dùng
net_connect.send_command() - gửi lệnh đến R/Sw
net_connect.send_config_set() - gửi lệnh đến R/Sw mode config
net_connect.save_config() - lưu cấu hình
net_connect.enable() - vào enable mode
net_connect.find_prompt() - trả về tên host R/Sw
net_connect.disconnect() - Đóng kết nối
Chúc các bạn thành công.
Thank you.