Hướng dẫn
Quảng cáo

Kết nối máy chủ bằng SSH trên Ubuntu

Bài viết này sẽ giới thiệu về SSH và hướng dẫn bạn cách kết nối với máy chủ thông qua giao thức SSH trên Ubuntu

1. SSH là gì? Cách cách kết nối SSH trên Ubuntu

SSH (hay Secure Shell) là một giao thức mạng được mã hoá để vận hành các dịch vụ mạng một cách an toàn. Giao thức này cung cấp một kênh kết nối bảo mật trong mô hình kết nối client-server. SSH sử dụng cổng TCP tiêu chuẩn là 22. Việc sử dụng giao thức SSH để kết nối sẽ tránh được các rủi ro trong việc nghe lén và đánh cắp thông tin.

Để thực hiện kết nối SSH, bạn có thể làm một vài cách như sau:

  • Sử dụng mật khẩu để xác thực.
  • Sử dụng cơ chế Key pairs

2. Mô hình kết nối SSH trên Ubuntu

Trong bài này, mình sẽ sử dụng một máy khách dùng Ubuntu với user root để kết nối với máy chủ có địa chỉ là 103.16.206.10.

Về cơ bản, để thực hiện được kết nối này, bạn phải đảm bảo chắc chắn máy tính của bạn phải kết nối được với máy chủ. Để kiểm tra, bạn mở Terminal và gõ:

ping <địa chỉ ip>

Ví dụ

ping 103.16.206.10

Khi đã có kết nối, chúng ta sẽ tiến hành kết nối với máy chủ.

3. Thực hiện SSH bằng mật khẩu trên Ubuntu

Với cách này, bạn cần nắm được mật khẩu đăng nhập người dùng trên máy chủ. Để thực hiện, bạn gõ trên Terminal như sau:

ssh @<địa chỉ ip>

Ví dụ

ssh root@103.16.206.10

Nếu là lần kết nối đầu tiên, thì máy sẽ hỏi lại bạn có muốn tiếp tục hay không. Bạn chỉ cần gõ YES, sau đó nhập pass. Như vậy, bạn đã thực hiện xong việc kết nối.

 

Ghi chú: Nếu port mặc định của bạn khác 22 thì bạn cần thêm port vào câu lệnh ssh root@103.16.206.10 - p 2222

4. Thực hiện SSH bằng cơ chế key pairs trên Ubuntu

Đôi khi việc sử dụng password để đăng nhập sẽ khiến bạn mất công nhớ mật khẩu và tiềm ẩn khả năng bị tấn công cao. Vì vậy, bạn có thể thực hiện việc kết nối thông qua sử dụng cơ chế key pairs.

Cơ bản thì ở máy khách sẽ tiến hành tạo cặp key là private key public key, sau đó sẽ gửi key public tới máy chủ và giữ lại private key. Khi muốn thực hiện đăng nhập từ xa, máy khách sẽ gửi yêu cầu kèm key private tới máy chủ. Máy chủ sẽ tiến hành kiểm tra private key có trùng với public Key không. Nếu có thì sẽ đăng nhập thành công.

Bước 1: Tạo key pairs

Đầu tiên, bạn phải tiến hành tạo SSH key trên máy của mình. Ở đây mình sẽ tạo key trên máy Ubuntu. Trên Terminal, bạn gõ:

ssh-keygen

Lập tức trên terminal xuất hiện một số yêu cầu sau:

Enter file in which to save the key (/root/.ssh/id_rsa): 
Bạn sẽ điền tên của file key. Thư mục lưu trữ file key đó là thư mục /root/.ssh/. Nếu bạn không nhập bất cứ gì, tên file sẽ mặc định là id_rsa.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Tiếp theo là mật khẩu cho key. Bước này sẽ khiến bạn phải xác thực lại key bằng mật khẩu. Nếu không muốn nhập mật khẩu, nhấn Enter để bỏ qua.

Như vậy, bạn đã tạo xong key trên máy của mình. Bây giờ thì tiến hành gửi key public tới máy chủ.

Bước 2: Gửi key public

Nói chung bước này khá là nhiều bước tuy nhiên có một cách khá đơn giản để thực hiện một mớ các thao tác này đó là sử dụng tiện ích ssh-copy-id

Ngoài ra nếu bạn không muốn sử dụng tiện ích này thì cũng có thể thực hiện một số cách khác như sao chép key qua SSH bằng mật khẩu hay sao chép thủ công.

Đầu tiên, trên cửa sổ Terminal, gõ lệnh:

ssh-copy-id @<địa chỉ ip>

Ví dụ

ssh-copy-id root@103.16.206.10

Trên Terminal sẽ hiện một loạt các dòng lệnh, trong đó có các yêu cầu sau.

Are you sure you want to continue connecting (yes/no)?
Máy yêu cầu cần xác thực bạn có muốn tiếp tục kết nối hay không. Bạn chỉ cần gõ YES.

root@103.16.206.10's password: 
Tiếp tục, máy yêu cầu bạn nhập mật khẩu cho máy nhận public key (máy chủ), nhập mật khẩu vào là bạn đã hoàn thành xong việc gửi public key tới máy nhận.

Bây giờ, trên cửa sổ Terminal của máy khách, gõ lệnh:

ssh @<địa chỉ ip>

Như vậy là bạn đã hoàn toàn đăng nhập vào máy server mà không cần nhập mật khẩu.

* Giải thích bước 2

Sau khi thực hiện copy và ssh thành công, trên máy server 2 sẽ có một số thay đổi như sau.

Đầu tiên, trên terminal của máy chủ (hoặc máy khách đã SSH) gõ:

Ví dụ

cd /root
ll -a


Terminal sẽ hiện lên một loạt danh sách các thư mục và file. Bạn có thể thấy có 1 thư mục tên là .ssh được tạo ra được cấp quyền là 700 (ý nghĩa con số 700 xem ở đây).

Di chuyển tới thư mục .ssh:

Ví dụ

cd .ssh
ll

Ta thấy có 2 file ở trong thư mục này với các chức năng sau:

  • authorized_keys: được cấp quyền 600, lưu trữ thông tin về key public được gửi.
  • known_hosts: cấp quyền 644, lưu trữ thông tin nhưng máy đã từng đăng nhập bằng SSH.

Như vậy, ta có thể thấy, tiện ích ssh-copy-id đã giúp thực hiện một mớ các thao tác phức tạp về lại một câu lệnh đơn giản và tiện lợi.

5. Một số lưu ý quan trọng

Nếu tên file key khác với tên mặc định (không phải id_rsa) bạn phải thêm cờ -i và tên key đó khi thực hiện ssh-copy-id. Ví dụ:

Ví dụ

ssh-copy-id -i abc.key root@103.16.206.10

Khi thực hiện ssh, nếu muốn sử dụng một key khác để đăng nhập, bạn cũng thêm cờ -i kèm theo địa chỉ thư mục chứa key, ví dụ như sau:

Ví dụ

ssh -i /home/user/abc.key user@103.16.206.10

Nếu bạn muốn tắt tính năng đăng nhập bằng mật khẩu, chỉ đăng nhập bằng key pairs. Bạn phải tiến hành tắt tính năng đó trên file config theo các bước sau: Di chuyển đến thư mục chứa file config

Ví dụ

cd /etc/ssh/
ls


Tìm file sshd_config và sửa nó với vi

Ví dụ

vi sshd_config


Trong file đó, tìm đến dòng PasswordAuthentication và đổi nó thành NO.

...
PasswordAuthentication no
...


Sau đó thoát ra ngoài bằng ESC -> gõ :wq (tham khảo thêm tài liệu về Vim). Tiến hành restart lại sshd:

Ví dụ

sudo systemctl restart sshd.service


Trên đây là hướng dẫn cơ bản và chi tiết về cách đăng nhập máy chủ từ ubuntu. Hy vong bài viết hữu ích với bạn!

Bài viết này đã giúp ích cho bạn?

Bài viết mới

Advertisements