Làm việc trên Remote server với SSH và Visual studio code
Hiện nay, với sự triển 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.
Nói tới việc kết nối với Remote server chúng ta luôn nghỉ tới SSH protocol, giao thức giúp kết nối giữa các máy tính một cách dễ dàng. Tưởng tượng một ngày bạn phải dùng SSH để remote vào server rồi sửa file rồi lưu file, thao tác lập đi lặp lại và rất không đáng có. Nghỉ không cũng thấy mệt mà làm rồi thì thấy rối nữa…. Chính vì vậy, đòi hỏi một cách kết nối với remote server thuận lợi nhất để tăng tốc độ làm việc và triển khai sản phẩm.
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 nữa. ahihi.
Bài viết này sẽ nói về cách đơn giản để từ máy Window cộng với Visual studio code có kết nối đến Remote server đang chạy hệ điều hành CentOS 7 và tha hồ vẫy vùng nhá.
Bài viết gồm 3 phần:
- Tạo cặp authorize ssh key tại máy tính.
- Lưu ssh key vào remote server.
- Cài đặt và cấu hình ssh remote extention trong visual studio code
1. Tạo cặp authorize ssh key
- Mở cmd
- Chạy lệnh để tạo cặp authorize ssh key
ssh-keygen -t rsa -b 4096 -f <file_path>
sample: ssh-keygen -t rsa -b 4096 -f %USERPROFILE%/.ssh/ssh_keyTrong đó:
-t là thuật toán mã hóa key
-b là kích thước của key
-f là đường đẫn bạn muốn lưu file ssh key%USERPROFILE% : Sẽ dẫn đến thư mục người dùng hiện tại trong window của bạn. ví dụ: %USERPROFILE% của mình là C:/Users/VPL
Thì sẽ có đường dẫn muốn lưu file public key là
C:/Users/VPL/.ssh/ssh_keyTham khảo tại: https://www.ssh.com/ssh/keygen/
- Ở bước passphare là không bắt buộc nên thường mình để trống.
- Sau khi nhấn enter để tiếp tục thành quả các bạn nhận được.
- Bạn tìm tới đường dẫn xem có file hai file authorize key như thế này không nhé
ssh_key là private key dùng ở máy tính cá nhân muốn kết nối đến remote server.
ssh_key.pub là public key sẽ được lưu ở remote server dùng cho việc xác thực
Nào tiếp tục phần 2 lưu public key lên server nhé.
2. Lưu ssh key vào remote server
- Các bạn dùng putty hoặc ssh để vào remote server
- public ssh key sẽ được lưu ở file: /home/<user_name>/.ssh/authorized_keys
lưu ý: file authorized_keys có thể chứa nhiều public key
- Mình sẽ lấy nội dung ở file ssh_key.pub được sinh ra tại máy tính và lưu vào file authorized_keys ở remote server. ssh_key.pub thường có nội dung theo dạng.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEC9Sfe8 ..............................................................................
- Sau đó tiến hành thay đổi quyền truy cập file authorized_keys về 666
chmod 666 authorized_keys
- Kết quả mình sẽ được file authorized_keys với public key mới. (File authorized_keys hiện tại của mình đang có 2 public key)
- Thử kết nối từ máy tính windown vào remote server bằng cặp key này nhá
ssh -i <private_key> -p 22 <remote_user>@<remote_ip>Trong ví dụ của chúng ta thì lệnh cụ thể làssh -i %USERPROFILE%/.ssh/ssh_key -p 22 luan_vanphuoc@xxx.xxx.xxx.xxx
- Vậy là mình đã connect được vào remote server với cặp ssh key vừa được sinh ra, mà không cần tới việc nhập password lằng nhằn.
- > Cũng dựa trên cặp ssh key chúng ta sẽ kết nối vào remote server, nhưng lần này thông qua Visual Studio code nhá. Không còn cái màn hình cmd đen đên hôi hôi nữa.
+ Lưu ý: Ngoài cách vào remote server như ở trên. Các bạn cũng có thể dùng lệnh scp
để copy trực tiếp nhá.
3. Cài đặt và cấu hình ssh remote extention trong visual studio code
- Cài đặt Remote-SSH extension trên visual studio code
- Sau khi cài đặt bạn sẽ thấy icon của Remote — ssh extension như hình sau.
- Mở file configuration bằng lệnh: ctrl + shift + p và tìm bằng từ khóa ssh configuration.
- File configuration này có thể chứa thông tin kết nối tới nhiều remote server và mỗi remote server sẽ có các thông tin cần thiết như sau:
Host <ten_muon_dat>HostName <remote_server_ip>User <remote_server_username>Port 22IdentityFile <duong_dan_toi_private_ssh_key>
- Trong ví dụ của chúng ta, file configuration có nội dung của một kết nối như sau:
Host VPL-1HostName 35.240.182.72User luan_vanphuocPort 22IdentityFile C:\Users\VPL\.ssh\ssh_key
- Xong vậy là hoàn tất việ c cấu hình, bây giờ thử connect nha.
- Bạn chọn Remote extension icon sẽ thấy hiện ra danh sách cái kết nối từ file cấu hình.
- Tiếp theo nhấn chuột phải và chọn
Connection to host ....,
ta sẽ được kết quả là đã kết nối tới remote server ở thanh trạng thái.
- Bây giờ thử duyệt file và termial trong remote server nhá.
- Bạn chọn Explorer -> Open folder -> chọn thư mục muốn mở trong remote server.
- Như bạn thấy là chúng ta đã duyệt được vào cấu trúc thư mục và terminal bên trong remote server rồi . ahihi.
to be continue … :))