Mục lục

Không có mục lục
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Cách thiết lập SSH key trên Ubuntu 12.04

Ngày đăng: 30 tháng 10 năm 2023

Giới thiệu

Secure Shell Protocol (hoặc SSH) là giao thức mạng mật mã cho phép người dùng truy cập an toàn vào máy tính từ xa qua mạng không bảo mật.

Mặc dù SSH hỗ trợ xác thực dựa trên mật khẩu nhưng thông thường bạn nên sử dụng SSH key để thay thế. SSH key là một phương pháp đăng nhập vào máy chủ SSH an toàn hơn vì chúng không dễ bị tấn công bởi các cuộc tấn công hack mật khẩu brute-force thông thường.

Việc tạo cặp SSH keys sẽ tạo ra hai chuỗi ký tự dài: public key và private key. Bạn có thể đặt public key trên bất kỳ máy chủ nào, sau đó kết nối với máy chủ bằng ứng dụng khách SSH (SSH client) có quyền truy cập vào private key.

Khi public key và private key khớp nhau, máy chủ SSH sẽ cấp quyền truy cập mà không cần mật khẩu. Bạn có thể tăng cường tính bảo mật cho cặp khóa của mình hơn nữa bằng cách bảo vệ private key bằng cụm mật khẩu tùy chọn (nhưng rất được khuyến khích).

Bước 1 - Tạo cặp khóa

Bước đầu tiên là tạo một cặp khóa trên máy khách. Đây có thể sẽ là máy tính cục bộ của bạn. Nhập lệnh sau vào dòng lệnh cục bộ của bạn:

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair.

Bạn sẽ thấy thông báo xác nhận rằng quá trình tạo khóa đã bắt đầu và bạn sẽ được nhắc cung cấp một số thông tin mà chúng ta sẽ thảo luận trong bước tiếp theo.

Lưu ý: nếu bạn đang sử dụng hệ thống cũ hơn không hỗ trợ tạo cặp khóa ed25519 hoặc máy chủ bạn đang kết nối không hỗ trợ chúng, thay vào đó, bạn nên tạo một cặp khóa rsa mạnh:

  1. ssh-keygen -t rsa -b 4096

Điều này thay đổi cờ -t “type” thành rsa và thêm cờ -b 4096 “bit” để tạo khóa 4096 bit.

Bước 2 - Chỉ định nơi lưu khóa

Lời nhắc đầu tiên từ lệnh ssh-keygen sẽ hỏi bạn nơi lưu khóa:

Output
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):

Bạn có thể nhấn ENTER tại đây để lưu tệp vào vị trí mặc định trong thư mục .ssh của thư mục chính của bạn.

Ngoài ra, bạn có thể chọn tên tệp hoặc vị trí khác bằng cách nhập tên tệp hoặc vị trí đó sau lời nhắc và nhấn ENTER.

Bước 3 - Tạo cụm mật khẩu

Lời nhắc thứ hai và cuối cùng từ ssh-keygen sẽ yêu cầu bạn nhập cụm mật khẩu:

Output
Enter passphrase (empty for no passphrase):

Bạn có muốn sử dụng cụm mật khẩu hay không là tùy thuộc vào bạn, nhưng chúng tôi đặc biệt khuyến khích: tính bảo mật của một cặp khóa, bất kể sơ đồ mã hóa, vẫn phụ thuộc vào thực tế là không ai khác có thể truy cập được nó.

Nếu private key không có cụm mật khẩu rơi vào quyền sở hữu của người dùng trái phép, họ sẽ có thể đăng nhập vào bất kỳ máy chủ nào mà bạn đã định cấu hình bằng public key được liên kết.

Nhược điểm chính của việc có cụm mật khẩu - nhập cụm mật khẩu - có thể được giảm thiểu bằng cách sử dụng dịch vụ ssh-agent, dịch vụ này sẽ tạm thời lưu trữ khóa đã mở của bạn và giúp máy khách SSH có thể truy cập được. Nhiều tác nhân trong số này được tích hợp với chuỗi khóa (keychain) gốc của hệ điều hành của bạn, giúp quá trình mở khóa trở nên liền mạch hơn.

Tóm lại, toàn bộ quá trình tạo khóa trông như thế này:

  1. ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/sammy/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy.ssh/id_ed25519 Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub The key fingerprint is: SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc sammy@hostname The key's randomart image is: +--[ED25519 256]--+ | o+o o.o.++ | |=oo.+.+.o + | |*+.oB.o. o | |*. + B . . | | o. = o S . . | |.+ o o . o . | |. + . ... . | |. . o. . E | | .. o. . . | +----[SHA256]-----+

Public key hiện nằm ở /home/sammy/.ssh/id_ed25519.pub. Khóa riêng hiện nằm ở /home/sammy/.ssh/id_ed25519.

Bước 4 - Sao chép public key vào máy chủ của bạn

Sau khi cặp khóa được tạo, đã đến lúc đặt public key trên máy chủ mà bạn muốn kết nối.

Bạn có thể sao chép public key vào tệp ủy quyền của máy chủ bằng lệnh ssh-copy-id. Đảm bảo thay thế tên người dùng và địa chỉ ví dụ:

  1. ssh-copy-id sammy@your_server_address

Sau khi lệnh hoàn tất, bạn sẽ có thể đăng nhập vào máy chủ thông qua SSH mà không bị nhắc nhập mật khẩu. Tuy nhiên, nếu bạn đặt cụm mật khẩu khi tạo SSH key, bạn sẽ được yêu cầu nhập cụm mật khẩu vào thời điểm đó. Đây là ứng dụng khách ssh cục bộ của bạn yêu cầu bạn giải mã private key, đây không phải là máy chủ từ xa yêu cầu mật khẩu.

Bước 5 - Vô hiệu hóa xác thực SSH dựa trên mật khẩu (Tùy chọn)

Khi bạn đã sao chép các SSH key của mình vào máy chủ, bạn có thể muốn cấm hoàn toàn việc đăng nhập bằng mật khẩu bằng cách định cấu hình máy chủ SSH để tắt xác thực dựa trên mật khẩu.

Cảnh báo: trước khi tắt xác thực dựa trên mật khẩu, hãy chắc chắn rằng bạn có thể đăng nhập thành công vào máy chủ bằng SSH key của mình và không có người dùng nào khác trên máy chủ sử dụng mật khẩu để đăng nhập.

Để tắt xác thực SSH dựa trên mật khẩu, hãy mở tệp cấu hình SSH. Nó thường được tìm thấy ở vị trí sau:

  1. sudo nano /etc/ssh/sshd_config

Lệnh này sẽ mở tệp trong trình soạn thảo văn bản nano. Tìm dòng trong tệp bao gồm PasswordAuthentication (hoặc tạo dòng nếu nó không tồn tại), đảm bảo rằng nó không bị nhận xét bằng # ở đầu dòng và thay đổi thành no:

/etc/ssh/sshd_config
PasswordAuthentication no

Lưu và đóng tập tin khi bạn hoàn tất. Trong nano, sử dụng CTRL+O để lưu, nhấn ENTER để xác nhận tên tệp, sau đó nhấn CTRL+X để thoát.

Tải lại dịch vụ sshd để những thay đổi này có hiệu lực:

  1. sudo systemctl reload sshd

Trước khi thoát phiên SSH hiện tại, hãy tạo kết nối thử nghiệm trong một thiết bị đầu cuối khác để xác minh rằng bạn vẫn có thể kết nối.

Kết luận

Trong hướng dẫn này, chúng tôi đã tạo một cặp SSH key, sao chép public key của chúng tôi vào máy chủ và (tùy chọn) đã tắt hoàn toàn xác thực dựa trên mật khẩu.

Để biết thêm thông tin về SSH và dịch vụ SSH, bao gồm cách thiết lập xác thực đa yếu tố, vui lòng đọc hướng dẫn liên quan của chúng tôi:

  • Cách sử dụng SSH để kết nối với máy chủ từ xa
  • Những điều cơ bản về SSH: Làm việc với Máy chủ, Máy khách và Khóa SSH
  • Cách thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 20.04
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời