Trong bài viết này , mình xin chia sẻ về một thủ thuật hữu ích để code Python một cách dễ dàng trên máy tính Windows mà vẫn sử dụng nhân Linux .
Mô hình
Mục tiêu
- Sử dụng phần mềm VSCode kết nối SSH đến các máy ảo ( trong trường hợp này là Ubuntu 18.04 ) để truy cập vào các folder của máy ảo , đồng thời có thể code và chạy trên chính terminal của máy ảo .
Các bước thực hiện
B1 : Đảm bảo máy ảo cho phép SSH . Trên Ubuntu Desktop , mặc định không có service này , phải cài thêm vào :
sudo apt-get install -y openssh-server
B2 : Trên máy Windows , mở phần mềm VSCode và cài đặt các extension sau :
- Cài đặt Remote – SSH :
- Cài đặt Python :
B3 : Sau khi cài đặt Remote – SSH , click vào biểu tượng ở góc trái dưới màn hình , chọn Remote-SSH: Connect to Host… để thực hiện kết nối SSH đến máy ảo Ubuntu :
B4 : Chọn Add a new host :
B5 : Tại cửa sổ Enter SSH Connection Command , nhập lệnh SSH , gõ Enter
:
B6 : Tại cửa sổ Select SSH configuration file to update , chọn C:\User\windows_user\.
ssh\config để thêm host :
B7 : Thông báo Host Added! báo hiệu kết nối thành công , chọn Connect :
B8 : Cửa sổ kết nối hiện ra , chọn Continue :
B9 : Nhập password của user SSH trên Ubuntu :
B10 : Chọn Open Folder > Folder muốn mở > OK :
B11 : Nhập password của user SSH để mở Folder :
B12 : Giao diện của trình SSH trên VSCode gồm phần cây thư mục , trình editor . Tuy nhiên , vẫn chưa thể run code trực tiếp trên terminal của máy ảo . Để làm được việc này , cần cài package hỗ trợ Python vào máy ảo :
B13 : Mở phần extension Python vừa cài đặt , chọn Install in SSH: 192.168.5.18 :
B14 : Reload để áp dụng cài đặt :
B15 : VSCode sẽ yêu cầu nhập lại password của máy ảo một lần nữa :
B16 : Hoàn tất cài đặt , một phím sẽ hiện ra cho phép chạy code ngay trên terminal của máy ảo :
B17 : Chạy Demo ngay :
Chú ý :
- Ngoài việc runcode , trên terminal cũng cho phép chạy các lệnh Linux bình thường như đang thực hiện ngay trên máy ảo .
- Trên máy ảo cần cài đặt sẵn Python .
- Nếu máy ảo cài đặt
pip
, VSCode sẽ hiện ra gợi ý cài đặt góipylint
để soát lỗi code . Nên cài đặt package này .
- Cách ngắt kết nối SSH :
- Sau khi ngắt kết nối , muốn kết nối lại sẽ không cần bước thêm host mà chỉ cần chọn vào host đã được thêm và lưu từ trước :
- Nên chọn riêng một máy ảo để code . Không nên snapshot lại máy ảo . Do trước đó key ECDSA Fingerprint của máy ảo đã lưu trên máy Windows nên sau khi snapshot sẽ không thể sử dụng key đó => Không thể SSH vào máy ảo .
- Để khắc phục điều này , trên máy Windows , truy cập đường dẫn :
C:\Users\<username>\.ssh\known_hosts
, xóa key ECDSA Fingerprint cũ của máy ảo trước đã kết nối , sau đó việc kết nối SSH sẽ trở lại bình thường . Tuy nhiên các công cụ như Python cũng sẽ phải cài lại từ đầu ( B13 , B14 )
Bài viết hay quá !