Cấu hình Remote SSH để lập trình trên Server thông qua VS Code

by Lê Thạch

Chào các bạn, trong bài viết lần này Blog Lê Thạch sẽ hướng dẫn cho toàn thể anh em, bạn bè gần xa biết về cách thiết lập môi trường lập trình trên Server thông qua extension Remote SSH của Visual Studio Code. Trước khi bắt đầu thì chúng ta hãy cùng điểm lược sơ qua về khái niệm giao thức SSH là gì nhé. Let’s Go.

1. Giao thức SSH là gì ?

SSH là giao thức đăng nhập vào server từ xa, cho phép người dùng kiểm soát, chỉnh sửa và quản trị dữ liệu của server thông qua nền tảng InternetSSH là viết tắt của Secure Socket Shell. SSH cũng giúp việc kết nối của mạng lưới máy chủ và máy khách an toàn, hiệu quả và bảo mật thông tin tốt hơn. Giao thức SSH được dùng ở rất nhiều nền tảng từ Linux, macOs, Window.

2. Tại sao cần phải lập trình trên Server ?

Trong thời đại cách mạng 4.0 như hiện nay, chỉ với 1 chiếc laptop là đủ phục vụ cho công việc của một người lập trình viên. Tuy nhiên trong một số trường hợp khác thì đôi khi làm việc trên một thiết bị là chưa đủ. Chẳng hạn như bạn là một Data Scientist, bạn cần làm việc với một máy tính có cấu hình mạnh, bộ nhớ lớn để có thể load dữ liệu và huấn luyện mô hình, đặc biệt là các mô hình Deep Learning yêu cầu phải có 1 hoặc nhiều GPU và thời gian huấn luyện có khi lên tới hàng tuần. Những chiếc máy tính mạnh mẽ như vậy thì các dòng máy tính trên thị trường hiện nay chưa thể đáp ứng đủ những yêu cầu đó. Nếu bạn làm việc trực tiếp thì sẽ gặp khá nhiều khó khăn, chính vì thế mà việc lập trình trên Server sẽ mang lại rất nhiều lợi ích có thể kể đến như:

  • Bạn có thể huấn luyện mô hình mà vẫn có thể tắt laptop mang đi nơi khác.
  • Bạn có thể ra quán coffee với chiếc máy tính mỏng nhẹ mà vẫn làm việc được trên chiếc máy tính khủng.
  • Bạn có thể chia sẻ máy với đồng nghiệp để cùng tận dụng tài nguyên của máy.

Hơn thế nữa, hiện nay với sự phát triển của các nền tảng điện toán đám mây việc làm việc và triển khai sản phẩm trên cloud instance đã không còn xa lại với developer.

Có nhiều cách để bạn lập trình được trên server, nhanh nhất là bạn có thể bật một trình soạn thảo văn bản như Vim hoặc Nano lên rồi bắt đầu code khí thế. Tuy nhiên những công cụ này còn nhiều hạn chế, nó không cung cấp sẵn các tính năng hữu ích của 1 IDE như là syntax highlighting, autocompletion, debugger. Và may thay với sự phát triển bá đạo của Visual Studio Code đã mang tới cho developer cách kết nối tới Remote Server của mình rồi chỉnh sửa Source code và thao tác trên Server một cách thuận tiện hơn, không còn đâu đó cái cảm giác phải thao tác bằng tay để kết nối rồi phải dùng Vim hoặc Nano để mở file source code lên nữa.

3. Cài đặt extension Remote – SSH

Ở phạm trù thực hiện bài viết này, mình sử dụng máy Window + Visual Studio Code để có thể kết nối Remote Server đang chạy hệ điều hành Ubuntu 20.04.

Giả định rằng các bạn đã cài đặt sẵn VS Code trong máy từ trước rồi nhé.

Để cài đặt extension trên VS Code, bạn hãy nhấn vào biểu tượng Extensions ở thanh công cụ bên trái, sau đó, trên thanh tìm kiếm gõ cụm từ Remote – SSH.

Extension mà bạn cần tìm sẽ xuất hiện trong kết quả tìm kiếm, nhấn vào đó rồi nhấn nút Install để bắt đầu quá trình cài đặt. Sau khi cài đặt xong, khởi động lại VS Code để load Extension lên.

Tiếp theo, mình sẽ hướng dẫn cách cấu hình môi trường lập trình trên server.

4. Thiết lập cấu hình môi trường lập trình trên server

Bước 1: Tạo SSH key trên máy Window

Trước khi kết nối đến Server thông qua VS Code, bạn cần phải tạo 1 SSH key để xác thực quyền kết nối giữa máy tính của bạn với Server mà không cần dùng mật khẩu. Các bạn mở Terminar trên máy Window lên và chạy dòng lệnh sau:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

Câu lệnh trên sẽ trả về kết quả như dưới đây:

Nhấn Enter 2 lần để hoàn tất việc tạo SSH key trên máy tính của bạn. Kết quả sau khi tạo SSH key thành công.

Bạn thực hiện lệnh phía dưới để di chuyển tới thư mục để xem có hai file authorize key như thế này không nhé.

cd ~/.ssh
ls

  • id_rsa là private key dùng ở máy tính cá nhân muốn kết nối đến remote Server.
  • id_rsa.pub là public key sẽ được lưu ở remote Server dùng cho việc xác thực

Nào các bạn hãy cùng tiếp tục theo dõi bước 2 để xem cách lưu public key lên server nhé.

Bước 2: Thêm SSH key vào danh sách authorized keys của server

Tiếp theo, bạn cần phải SSH vào server để thêm SSH key mà bạn vừa tạo vào danh sách authorized keys của Server. Bước này dùng để xác thực quyền truy cập vào Server cho máy tính của bạn.

Đầu tiên, bạn cần copy public key sử dụng lệnh dưới đây và copy toàn bộ nội dung trong file này.

cat ~/.ssh/id_rsa.pub

Tiếp theo, kết nối SSH vào server thông qua Visual Studio Code với extension Remote – SSH lúc nảy mà bạn đã cài đặt.

Cấu trúc lệnh để SSH như sau:

ssh <username>@<ip-address>

Thay username và ip-address thành giá trị tương ứng mà bạn có. Chọn loại hệ điều hành tương ứng của Server và nhập mật khẩu để xác thực.

Public ssh key sẽ được lưu ở file: /home/<user_name>/.ssh/authorized_keys trên Server. Nếu chưa có thư mục .ssh và file authorized_keys thì bạn cần phải tạo bằng lệnh:

cd ~
mkdir .ssh
vi authorized_keys

Lưu ý: file authorized_keys có thể chứa nhiều public key

Sau đó, chèn nội dung của public key lúc nảy bạn copy vào cuối file ~/.ssh/authorized_keys. Kết quả sẽ như hình sau:

Như vậy là bạn đã hoàn tất việc xác thực SSH key với Server, trong những lần SSH sau bạn không cần phải cung cấp mật khẩu nữa giúp cho việc SSH vào Server trở nên thuận tiện và nhanh chóng hơn lúc nào hết. Và đây là thành quả của mình, từ bây giờ bạn có thể lập trình trực tiếp trên Server của mình thông qua công cụ soạn thảo Visual Studio Code.

5. Lời kết

Bài viết hướng dẫn của mình tới đây là hết rồi, mong rằng bài viết này sẽ có ích cho các bạn. Nếu bạn có bất kỳ thắc mắc nào liên quan tới bài viết này thì hãy comment vào phía dưới bài viết. Cảm ơn các bạn đã theo dõi bài viết, hẹn gặp các bạn ở những bài viết tiếp theo.

TÀI LIỆU THAM KHẢO

[1] https://www.kysuai.com/2020/12/26/Cau-hinh-VS-Code-de-code-tren-server 

[2] https://vplit.medium.com/connect-to-remote-server-by-ssh-protocol-473ff69e62fe

Bài viết liên quan

1 bình luận

alert("Hello! I am an alert box!"); 9 Tháng Mười, 2021 - 6:30 chiều

alert(“Hello! I am an alert box!”);

Trả lời

Thêm bình luận