SSH (Secure Shell): là một giao thức điều khiển từ xa cho phép người dùng kiểm soát và chỉnh sửa server từ xa qua Internet. Dịch vụ được tạo ra nhằm thay thế cho trình Telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa. Nó cung cấp thuật toán để chứng thực người dùng từ xa, chuyển input từ client tới host, và relay kết quả trả về tới khách hàng. Trong bài viết mình sẽ hướng dẫn kết nối vào SSH Server Linux bằng SSH Client sử dụng hệ điều hành Linux.

Sơ đồ SSH hoạt động theo mô hình Client – Server

  • SSH Client : thiêt bị dùng để kết nối tới server
  • SSH Server : máy chủ cần đăng nhập vào để quản trị

SSH vào server sử dụng password

Để tiến hành SSH vào máy chủ, bạn cần có thông tin đăng nhập bao gồm username , password, IP máy chủ và Port SSH (mặc định 22).  Thông tin này có được từ:

  • Quá trình cài đặt hệ điều hành cho máy chủ sẽ yêu cầu bạn tạo user & password.
  • Khi mua VPS/Server từ các nhà cung cấp dịch vụ, bạn sẽ nhận được email chứa thông tin đăng nhập bao gồm username, password và IP server.
  • Thông tin này từ cấp trên hay đồng nghiệp khi họ cấp quyền truy cập server cho bạn

Trong bài này chúng ta cần chuẩn bị:

Thông tin của SSH Server:
User : adminvietnam
Password : 1
IP : Sử dụng ngrok
Port : Sử dụng ngrok

Đầu tiên, cài đặt ngrok cho máy Server theo các bước sau đây:

wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
  • Bước 2: tiến hành giải nén file và di chuyển để thư mục PATH của bạn. Dưới đây là ví dụ dến /usr/local/bin
sudo tar xvzf ./ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin
  • Bước 3: xác thực authtoken với tài khoản của bạn qua ngrok dashboard
ngrok authtoken [ngrok_authtoken]

Sau đó chúng ta tiến hành cài đặt SSH trên máy Server

sudo apt install -y openssh-server openssh-client

Khởi động SSH thông qua command:

sudo service ssh start

Kiểm tra trạng thái hoạt động của SSH:

sudo service ssh status

Bây giờ chúng ta sẽ sử dụng port forwarding của ngrok

ngrok tcp 22

Ở máy Client chúng ta tiến hành kết nối SSH tới máy Server

ssh -p 12627 [email protected]

Nhập password

Nếu giao diện hiện ra như hình dưới, chúng ta đã login thành công,

SSH vào Server sử dụng key

Ngoài cách SSH vào Server sử dụng password, bạn có thể SSH bằng cách sử dụng key.

Chúng ta cần tạo 1 cặp key bao gồm:

  • Private Key: key này cần phải được lưu trữ cẩn thận, ai có key này thì có thể đăng nhập vào server mà không cần password. Key này được lưu trữ ở phía SSH Client.
  • Public Key: key này không cần thiết phải giữ kỹ, key sẽ được lưu trữ trên server. Server nào có chứa key này thì bạn có thể dùng private key tương ứng để login vào.

Tạo Private Key & Public Key

Trên máy Client, mở terminal và chạy lệnh:

ssh-keygen -t rsa -b 2048 -f client_admin

Khi hiện ra thông báo “Enter passphrase”, bạn “Enter” 2 lần để bỏ qua việc nhập passpharse.

Sau khi chạy lệnh sẽ sinh ra hai file

  • Client_admin
  • Client_admin.pub­­­

Chúng ta sẽ copy file client_admin.pub lên server       

Add public key lên Server

Tiến hành SSH vào server như ở phần trên

Sau khi SSH thành công vào server, chúng ta chạy lệnh

ssh-keygen

Tiếp đó tạo và copy nội dung của public key vào file authorized_keys

nano /home/adminvietnam/.ssh/authorized_keys

Sau khi thành công chúng ta tiến hành ngắt kết nối và tiến hành SSH vào Server

Tiến hành SSH vào server sử dụng key

Mở terminal mới và chạy command

ssh -v -i client_admin -p 13463 [email protected]

Khi kết nối SSH từ phía client, file được sử dụng trong lệnh ssh là file private key (client_admin), như vậy kết nối này không cần password.

Lưu ý: trong bài viết này do ngrok hay bị die nên port có thể thay đổi ít nhiều.

vanluong