Tin tức và phân tích của tất cả các thiết bị di động

Cách sử dụng SSH để kết nối với máy chủ từ xa trong Linux

Nếu bạn là người mới làm quen với thế giới quản trị hệ thống và cần bảo trì cũng như giám sát các máy chủ từ xa, điều quan trọng là phải thành thạo Secure Shell (SSH) để truy cập từ xa. Với SSH, bạn có thể kết nối và quản lý máy chủ của mình một cách an toàn từ mọi nơi, điều này đảm bảo quản trị hiệu quả và tăng cường bảo mật. Vì vậy, trong hướng dẫn này, chúng tôi sẽ giải thích cách sử dụng ssh để kết nối với máy chủ từ xa trong Linux.

SSH có nghĩa là gì?

SSH là viết tắt của “Vỏ an toàn,” một giao thức mạng mật mã mà bạn có thể sử dụng để kết nối với máy chủ từ xa trên Windows, Linux và macOS. Nó cung cấp một kênh an toàn và được xác thực bằng cách sử dụng kênh đó bạn có thể truyền dữ liệu giữa máy khách và máy chủ. Với SSH, bạn cũng có thể đăng nhập an toàn vào hệ thống từ xa. Một số tính năng chính của SSH là:

  • Mã hóa: Tất cả dữ liệu được trao đổi bằng SSH đều được mã hóa hoàn toàn bằng mã hóa đối xứng, mã hóa bất đối xứng hoặc băm một trong các thuật toán mã hóa rất mạnh, từ đó bảo vệ dữ liệu người dùng. Mã hóa như vậy đảm bảo rằng dữ liệu nhạy cảm, bao gồm thông tin đăng nhập, lệnh và tệp, không thể bị tin tặc hoặc tác nhân đe dọa chặn hoặc giả mạo.
  • Xác thực: SSH sử dụng xác thực để xác minh mọi yêu cầu đăng nhập sắp tới. Nó hỗ trợ hai loại giao thức xác thực:
    • Xác thực dựa trên mật khẩu – Trong chế độ xác thực này, người dùng cung cấp tên người dùng và mật khẩu đã đăng ký để tự xác thực. Đây là phương pháp phổ biến nhất để kết nối với máy chủ Linux từ xa bằng SSH.
    • Xác thực dựa trên cặp khóa SSH – Trong chế độ xác thực này, một cặp khóa mật mã được tạo: khóa chung được lưu trữ trong máy chủ từ xa và khóa riêng được lưu trữ trên hệ thống của người dùng. Khi người dùng cố gắng đăng nhập, các khóa này sẽ được sử dụng để xác nhận danh tính của người dùng. Phương pháp này là một phương pháp có tính bảo mật cao và giúp người dùng không phải đăng nhập bằng mật khẩu.
  • Nền tảng độc lập: với SSH, bạn có thể kết nối với bất kỳ máy chủ từ xa nào, bất kể hệ điều hành máy chủ. Nó có sẵn cho Linux, Windowsvà macOS.
  • Tính linh hoạt: Bạn có thể sử dụng SSH để không chỉ đăng nhập vào hệ thống từ xa mà còn có thể gửi tệp qua ssh bằng lệnh scp.

Cách cài đặt OpenSSH trên Linux

Có nhiều loại phần mềm SSH khác nhau dành cho cả máy chủ và máy khách như Teleport, WolfSSH, OpenSSH, v.v. Tuy nhiên, phần mềm SSH phổ biến nhất là OpenSSH. OpenBSD Secure Shell hoặc OpenSSH, như nó thường được biết đến, được phát hành lần đầu tiên vào tháng 12 1, 1999, dưới dạng phần mềm đa nền tảng, miễn phí và nguồn mở. Dưới đây, chúng tôi đã trình diễn quá trình cài đặt OpenSSH trên Linux.

Cài đặt ứng dụng khách OpenSSH

Để kết nối với máy chủ Linux từ xa, bạn cần cài đặt “OpenSSH Client” trên hệ thống của mình. Sử dụng các bước sau để cài đặt nó: –

1. Sử dụng lệnh dành riêng cho bản phân phối Linux của bạn để cài đặt ứng dụng khách OpenSSH trên hệ thống của bạn. Chúng tôi đang sử dụng hệ thống dựa trên Debian cho hướng dẫn này.

  • Đối với hệ thống dựa trên Debian:
sudo apt-get install openssh-client
  • Đối với các hệ thống dựa trên Fedora:
sudo dnf install openssh-client

2. Để xác minh xem máy khách SSH đã được cài đặt đúng hay chưa, chỉ cần chạy lệnh này. Bạn sẽ nhận được kết quả tương tự như ảnh chụp màn hình bên dưới.

ssh

Cài đặt máy chủ OpenSSH

Bất cứ khi nào bạn tạo một phiên bản máy chủ từ xa mới bằng cách sử dụng bất kỳ nhà cung cấp điện toán đám mây phổ biến nào, về cơ bản nó sẽ được cài đặt sẵn phần mềm SSH phía máy chủ, thường là với OpenSSH Server. Nhưng trong trường hợp máy chủ “tại chỗ”, bạn có thể phải cài đặt thủ công. Thực hiện theo các bước sau để cài đặt máy chủ OpenSSH trên máy chủ từ xa của bạn:

1. Đầu tiên, sử dụng lệnh này để kiểm tra xem máy chủ OpenSSH đã được cài đặt trên hệ thống hay chưa.

ssh localhost

Nếu bạn thấy loại đầu ra này, điều đó có nghĩa là máy chủ SSH chưa được cài đặt và bạn cần cài đặt thủ công.

2. Sử dụng lệnh dành riêng cho distro để cài đặt máy chủ OpenSSH:

  • Hệ thống Linux dựa trên Debian:
sudo apt-get install openssh-server
  • Hệ thống dựa trên RedHat/Fedora:
sudo dnf install openssh-server

3. Sau khi cài đặt, hãy kiểm tra xem máy chủ SSH có chạy hay không bằng lệnh này. Trong một số trường hợp, máy chủ SSH sẽ tự khởi động mà không yêu cầu bạn thực hiện bất kỳ lệnh nào.

sudo service ssh status

Nếu nó chưa được kích hoạt, bạn sẽ thấy thông báo đầu ra có nội dung “không hoạt động (đã chết)”.

4. Trong trường hợp nó báo không hoạt động, hãy sử dụng lệnh này để kích hoạt nó:

sudo service ssh start

5. Để xác minh xem nó có chạy hay không, hãy sử dụng lại lệnh này:

sudo service ssh status

Lần này bạn sẽ thấy một chấm màu xanh lá cây phía trước tên và “hoạt động (đang chạy)”.

Lệnh SSH trong Linux: Cú pháp và tùy chọn

Bây giờ bạn đã thiết lập và chạy SSH, hãy xem cú pháp và các tùy chọn khác nhau mà bạn có thể kết hợp với nó:

ssh <options> <username>@<remote_server_ip_address_or_domain_name>

Một số tùy chọn phổ biến bạn có thể ghép nối với lệnh SSH là:

Tùy chọnMô tả
-4Chỉ cho phép kết nối với địa chỉ IPv4.
-6Cho phép chuyển tiếp GUI (đối với hệ thống dựa trên X11)
-MỘTCho phép chuyển tiếp kết nối tác nhân xác thực.
-CNén tất cả dữ liệu được truyền để có tốc độ truyền nhanh hơn.
-PĐược sử dụng để chỉ định số cổng để kết nối với máy chủ từ xa.
-XCho phép chuyển tiếp GUI (đối với hệ thống dựa trên X11)

Kết nối với máy chủ Linux từ xa bằng SSH

Sau khi tìm hiểu cú pháp và các tùy chọn cho lệnh SSH, giờ là lúc xem cách kết nối với máy chủ Linux từ xa bằng SSH. Sử dụng một trong các phương pháp được đề cập dưới đây cho cùng một mục đích.

Kết nối bằng lệnh SSH

1. Đầu tiên hãy ghi lại địa chỉ IP của máy chủ từ xa mà bạn muốn kết nối. Nếu bạn không biết địa chỉ IP, hãy sử dụng lệnh này để in địa chỉ IP công cộng:

curl ifconfig.me

Nếu hệ thống của bạn được kết nối với cùng mạng với máy chủ từ xa, hãy sử dụng lệnh này:

ip addr

Bạn nên kết nối máy chủ từ xa thông qua VPN để tăng cường bảo mật. Hãy xem hướng dẫn của chúng tôi về VPN là gì và nó hoạt động như thế nào.

2. Bây giờ sử dụng lệnh này để kết nối máy chủ từ xa:

ssh <username>@<remote_server_ip_address_or_domain_name>

3. Nhập mật khẩu cho tên người dùng mà bạn muốn đăng nhập và nhấn enter.

4. Khi bạn đăng nhập thành công vào máy chủ từ xa, bạn sẽ thấy màn hình chào mừng như hình bên dưới.

Trong trường hợp này, IP máy chủ từ xa của chúng tôi là “172.105.253.48” và tên người dùng là “root”:

Đăng nhập bằng khóa SSH của bạn

Xác thực dựa trên khóa SSH cung cấp tính bảo mật nâng cao và sự thuận tiện so với xác thực dựa trên mật khẩu nhưng yêu cầu thiết lập ban đầu một chút. Nó liên quan đến việc xác thực bằng cách sử dụng một cặp khóa mật mã – khóa chung được đặt bên trong máy chủ từ xa và khóa riêng được lưu giữ với máy khách, do đó loại bỏ rắc rối khi người dùng nhập mật khẩu. Thực hiện theo các bước sau để thiết lập đăng nhập không cần mật khẩu với SSH:

1. Tạo cặp khóa SSH mới trên hệ thống cục bộ của bạn bằng lệnh này:

ssh-keygen -t rsa

Lệnh này sẽ sử dụng thuật toán RSA (Rivest-Shamir-Adleman) nổi tiếng để tạo cặp khóa. Bạn có thể sử dụng bất kỳ thuật toán nào khác mà bạn chọn như Diffie – Hellman Key Exchange (DHE), Thuật toán chữ ký số (DSA), v.v.

2. Bây giờ bạn sẽ được nhắc về vị trí lưu trữ chìa khóa. Nhập đường dẫn nơi bạn muốn lưu trữ hoặc để trống để lưu trữ ở vị trí mặc định “~/.ssh/id_rsa” và nhấn enter.

3. Tiếp theo, bạn sẽ được nhắc nhập cụm mật khẩu. Nhập cụm mật khẩu mạnh hoặc để trống và nhấn enter.

4. Sau khi khóa của bạn được tạo, bạn sẽ thấy thông báo thành công cùng với khóa “ngẫu nhiên”.

5. Bây giờ chuyển khóa SSH công khai sang máy chủ từ xa bằng lệnh này. Bạn cũng có thể sử dụng lệnh scp để chuyển khóa RSA công khai một cách an toàn.

ssh-copy-id <username>@<remote_server>

6. Khi bạn đã hoàn tất các bước trên, bạn chỉ cần sử dụng lệnh SSH với cú pháp sau để đăng nhập mà không cần mật khẩu:

ssh <username>@<remote_server_ip_address_or_domain_name>

Kết nối với máy chủ bằng tệp cấu hình SSH

Mỗi khi tạo một kết nối SSH mới, lệnh SSH sẽ hoạt động theo cấu hình được lưu trong tệp cấu hình SSH. Với một số phép thuật chỉnh sửa, bạn có thể chỉ định máy chủ và cổng Linux từ xa nào sẽ kết nối, v.v. thông qua tệp cấu hình SSH này.

1. Mở tệp cấu hình ssh bằng Nano commandin Linux hoặc bất kỳ trình soạn thảo văn bản Linux nào khác mà bạn chọn.

sudo nano ~/.ssh/config

Điều này sẽ mở tập tin cấu hình dành riêng cho người dùng. Để mở tệp cấu hình cho tất cả người dùng, hãy sử dụng lệnh này

sudo nano /etc/ssh/ssh_config

2. Bây giờ, hãy sử dụng cú pháp này để chỉnh sửa tệp cấu hình:

Host <remote_server_1_name>
    ssh_option_1 value
    ssh_option_2 value

Host <remote_server_2_name>
    ssh_option_1 value
    ssh_option_2 value

Trong cú pháp trên, ssh_options là các tùy chọn tương tự mà bạn ghép nối với lệnh ssh. Đây là một ví dụ về tập tin cấu hình:

Host remote_1
    HostName 192.168.1.10
    User test1
    Port 22

Host remote2
    HostName 172.105.253.48
    User root
    Port 22

Ở đây, chúng tôi đã tạo các mục cho hai máy chủ từ xa cùng với các tùy chọn của chúng. Bạn có thể chỉ định bao nhiêu máy chủ từ xa cùng với các tùy chọn của chúng.

3. Khi bạn chỉnh sửa xong tệp cấu hình, hãy lưu và thoát khỏi trình chỉnh sửa.

4. Để kết nối với máy chủ từ xa bằng tệp cấu hình SSH, hãy sử dụng cú pháp sau:

ssh <remote_server_name>

Ví dụ: để kết nối với máy chủ remote2, hãy sử dụng lệnh sau:

ssh remote2

Các câu hỏi thường gặp

Làm cách nào để liệt kê tất cả các phiên SSH trong Linux?

Để liệt kê tất cả các kết nối SSH trong Linux, hãy sử dụng lệnh này: ss -t -a

SSH có luôn ở cổng 22 không?

Theo mặc định, máy chủ SSH cho phép các kết nối đến trên cổng 22. Để bật SSH trên một cổng khác, hãy mở tệp /etc/ssh/ssh_config trong trình soạn thảo văn bản Linux và đặt cổng thành bất kỳ giá trị nào trong khoảng từ 1024 đến 65536.

Mục lục