
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á !