Thứ sáu, 19/07/2013 | 00:00 GMT+7

Cách tạo khóa SSH với PuTTY để kết nối với VPS


Lợi ích của Khóa SSH Công cộng & Tư nhân

Nếu VPS không đầu hoặc từ xa của bạn hiển thị trên Internet, bạn nên sử dụng xác thực public key thay vì password , nếu có thể. Điều này là do SSH key cung cấp một cách đăng nhập an toàn hơn so với việc chỉ sử dụng password . Mặc dù password cuối cùng có thể bị bẻ khóa bằng một cuộc tấn công bạo lực , nhưng các SSH key gần như không thể giải mã chỉ bằng cách sử dụng vũ lực. Với xác thực public key , mọi máy tính đều có (i) public key và (ii) "khóa" riêng tư (hai thuật toán được liên kết toán học và không thể bẻ khóa được).

Ngày nay, OpenSSH là cách triển khai SSH mặc định trên các hệ thống giống Unix như Linux và OS X. Xác thực dựa trên khóa là an toàn nhất trong số một số chế độ xác thực có thể sử dụng với OpenSSH, chẳng hạn như password thuần túy và vé Kerberos. Các phương pháp xác thực khác chỉ được sử dụng trong các tình huống rất cụ thể. SSH có thể sử dụng khóa "RSA" (Rivest-Shamir-Adleman) hoặc "DSA" ("Thuật toán chữ ký số"). Cả hai thuật toán này đều được coi là thuật toán tiên tiến nhất khi SSH được phát minh, nhưng DSA đã bị coi là kém an toàn hơn trong những năm gần đây. RSA là lựa chọn được đề xuất duy nhất cho các khóa mới, vì vậy hướng dẫn này sử dụng "khóa RSA" và "khóa SSH" thay thế cho nhau.

Khi bạn đăng nhập vào DigitalOcean VPS của bạn , server SSH sử dụng public key để "khóa" thư theo cách mà chỉ có thể "mở khóa" bằng private key của bạn. Điều này nghĩa là ngay cả những kẻ tấn công giàu có nhất cũng không thể rình mò hoặc can thiệp vào phiên của bạn. Như một biện pháp bảo mật bổ sung, một số user và hầu hết các chương trình SSH lưu trữ private key ở định dạng được bảo vệ bằng passphrase (password bảo vệ) , để cung cấp khoảng thời gian mà bạn có thể vô hiệu hóa public key bị xâm phạm của bạn nếu máy tính của bạn bị đánh cắp hoặc đột nhập. Vì những lý do này, xác thực public key là một giải pháp tốt hơn nhiều so với password đối với hầu hết mọi người. Trên thực tế, bằng cách không sử dụng passphrase (password bảo vệ) trên private key của bạn , bạn sẽ có khả năng tự động hóa các phần quản lý cấu hình của bạn bằng các đăng nhập tự động, an toàn, chẳng hạn như backup gia tăng ngoài trang web, quản lý tài sản DigitalOcean của bạn thông qua API DigitalOcean, và nhiều hơn nữa.

Đăng nhập SSH dựa trên khóa

Bạn có thể lưu cùng một public key trên bao nhiêu server cloud tùy thích, trong khi private key của bạn được lưu trên một ứng dụng client mà bạn đăng nhập vào server . Sau đó, bạn có thể vô hiệu hóa thủ tục đăng nhập tên user / password thông thường, nghĩa là chỉ những người có cặp private key / công khai hợp lệ mới có thể đăng nhập; làm cho hệ thống của bạn an toàn hơn, vì nó sẽ không bị các cuộc tấn công bạo lực.

Tự động tạo các server mới

Một mục đích hữu ích khác mà các SSH key có thể phục vụ là trong việc tạo ra các server DigitalOcean. Như bạn đã biết, khi bạn quay một server , bạn phải đợi một e-mail có password của bạn. Mặc dù email này rất tiện lợi, nhưng có một cách an toàn hơn (và nhanh hơn) để đạt được quyền truy cập vào server cloud mới của bạn mà không cần email. Điều này có thể được thực hiện bằng cách lưu public key của bạn trong Control panel DigitalOcean . Để hoàn thành việc này:

  • Trước tiên, hãy hoàn thành phần trong hướng dẫn này có tiêu đề Tạo các khóa tương thích với OpenSSH để sử dụng với PuTTY .
  • Sau đó, chuyển sang Bước ba của Cách sử dụng SSH key với server DigitalOcean .

Yêu cầu

Hướng dẫn này giả định bạn đã quen với hướng dẫn của DigitalOcean về Cách đăng nhập vào Server bằng PuTTY (dành cho user windows) .

Trình tạo khóa PuTTY (hay còn gọi là PuTTYgen)

Mặc dù PuTTY là một client cho SSH (ngoài Telnet và Rlogin), nó không phải là một cổng của hoặc dựa trên OpenSSH. Do đó, PuTTY không có hỗ trợ riêng để đọc các file private key SSH-2 của OpenSSH. Tuy nhiên, PuTTY có một người bạn đồng hành tên là PuTTYgen (một tiện ích tạo khóa RSA và DSA), có thể chuyển đổi các file private key OpenSSH sang định dạng của PuTTY; cho phép bạn kết nối với server cloud của bạn từ máy Windows, với tính năng bảo mật bổ sung mà SSH key cung cấp.

PuTTYgen là một tiện ích open-souce (miễn phí) và có thể được download từ trang web của nhà bảo trì . PuTTYgen là những gì bạn sẽ sử dụng để tạo SSH key của bạn để sử dụng trong PuTTY. Để bắt đầu, tất cả những gì bạn cần làm là download các file có giá trị (.exe) và lưu chúng trên máy tính mà bạn sẽ sử dụng để kết nối với VPS của bạn , chẳng hạn như trên máy tính để bàn. Bạn sẽ không cần phải "cài đặt" PuTTYgen, vì nó là một ứng dụng độc lập.

Tạo các khóa tương thích với OpenSSH để sử dụng với PuTTY

Để tạo một bộ khóa RSA với PuTTYgen:

  1. Khởi động tiện ích PuTTYgen bằng cách nhấp đúp vào file .exe của nó;
  2. Đối với Loại khóa để tạo , hãy chọn RSA ;
  3. Trong Số bit trong trường khóa được tạo , chỉ định 2048 hoặc 4096 (tăng số bit khiến khóa khó bẻ khóa bằng phương pháp brute-force);
  4. Nhấp vào nút Tạo ;
  5. Di chuyển con trỏ chuột của bạn xung quanh vùng trống của phần Key , bên dưới thanh tiến trình (để tạo ra một số ngẫu nhiên) cho đến khi thanh tiến trình đầy;
  6. Một cặp private key / công khai hiện đã được tạo;
  7. Trong trường Comment chính , hãy nhập bất kỳ comment nào bạn muốn, để giúp bạn xác định cặp khóa này, sau này (ví dụ: địa chỉ e-mail của bạn; nhà riêng; văn phòng; v.v.) - comment chính đặc biệt hữu ích trong trường hợp bạn kết thúc việc tạo nhiều hơn một cặp khóa;
  8. Tùy chọn : Nhập passphrase (password bảo vệ) vào trường Passphrase (password bảo vệ) khóa & nhập lại cùng một passphrase (password bảo vệ) trong trường Xác nhận passphrase (password bảo vệ) (tuy nhiên, nếu bạn muốn sử dụng khóa của bạn cho các quy trình tự động, bạn không nên tạo passphrase (password bảo vệ) );
  9. Nhấp vào nút Lưu public key & chọn bất kỳ tên file nào bạn muốn (một số user tạo folder trong máy tính của họ có tên my_keys );
  10. Nhấp vào nút Lưu private key và chọn bất kỳ tên file nào bạn muốn (bạn có thể lưu nó ở cùng vị trí với public key , nhưng nó phải là vị trí mà chỉ bạn mới có thể truy cập và bạn sẽ KHÔNG bị mất! Nếu bạn mất và đã tắt đăng nhập tên user / password , bạn sẽ không thể đăng nhập được nữa!);
  11. Nhấp chuột phải vào trường văn bản có nhãn Khóa công khai để paste vào file OpenSSH allow_keys và chọn Chọn tất cả ;
  12. Nhấp chuột phải lần nữa vào cùng trường văn bản và chọn Sao chép .

LƯU Ý: PuTTY và OpenSSH sử dụng các định dạng khác nhau cho các SSH key công khai. Nếu Khóa SSH bạn đã sao chép bắt đầu bằng "---- BEGIN SSH2 KHÓA CÔNG KHAI ...", thì nó có định dạng sai.Hãy chắc chắn để làm theo các hướng dẫn một cách cẩn thận. Khóa của bạn phải bắt đầu bằng "ssh-rsa AAAA ...."

Lưu public key trên server

Bây giờ, bạn cần dán public key đã sao chép vào file ~ / .ssh / allow_keys trên server của bạn .

  1. Đăng nhập vào server đích của bạn; xem Cách đăng nhập vào Server bằng PuTTY (dành cho user windows)
  2. Nếu folder SSH của bạn chưa tồn tại, hãy tạo nó theo cách thủ công:
  3. mkdir ~/.ssh
    chmod 0700 ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod 0644 ~/.ssh/authorized_keys
  4. Dán public key SSH vào file ~ / .ssh / allow_keys của bạn ( xem Cài đặt và sử dụng Trình soạn thảo văn bản Vim trên Server cloud ):
  5. sudo vim ~/.ssh/authorized_keys
  6. Nhấn vào phím i trên bàn phím và nhấp chuột phải vào chuột để dán.
  7. Để lưu, hãy chạm vào các phím sau trên bàn phím của bạn (theo thứ tự này): Esc , : , w , q , Enter .

Tạo profile PuTTY để lưu cài đặt server của bạn

Trong PuTTY, bạn có thể tạo (và lưu) profile cho các kết nối đến các server SSH khác nhau của bạn , do đó bạn không cần phải nhớ và liên tục nhập lại thông tin thừa.

  1. Khởi động PuTTY bằng cách nhấp đúp vào file thực thi của nó;
  2. Cửa sổ ban đầu của PuTTY là Danh mục phiên ( chuyển các danh mục khác nhau của PuTTY, dọc theo bên trái cửa sổ);
  3. Trong trường Tên server , nhập địa chỉ IP của VPS của bạn hoặc domain đủ điều kiện của nó (FQDN); xem Cách cài đặt Tên server với DigitalOcean
  4. Nhập số cổng vào trường Cổng (để tăng cường bảo mật, hãy xem xét việc thay đổi cổng SSH của server của bạn thành một cổng không chuẩn. Xem Bước 5 của Cài đặt Server Ban đầu với Ubuntu 12.04
  5. Chọn SSH trong Giao thức ;
  6. Dọc theo phía bên trái của cửa sổ, chọn danh mục con Dữ liệu , trong Kết nối ;
  7. Chỉ định tên user mà bạn định sử dụng, khi đăng nhập vào server SSH và profile bạn đang lưu, trong trường Tên user đăng nhập tự động ;
  8. Mở rộng danh mục phụ SSH , trong Kết nối ;
  9. Đánh dấu danh mục phụ Auth và nhấp vào nút Browse , ở phía bên phải của cửa sổ PuTTY;
  10. Duyệt qua hệ thống file của bạn và chọn private key được tạo trước đó của bạn;
  11. Quay lại Danh mục phiên và nhập tên cho cấu hình này trong trường Phiên đã lưu , ví dụ: user@123.456.78.9 hoặc user@host.yourdomain.tld;
  12. Nhấp vào nút Lưu cho Tải, Lưu hoặc Xóa khu vực phiên đã lưu trữ .

Đến đây bạn có thể tiếp tục và đăng nhập vào user @ 1.2.3.4 và bạn sẽ không được yêu cầu nhập password . Tuy nhiên, nếu bạn đã đặt passphrase (password bảo vệ) trên public key của bạn , bạn sẽ được yêu cầu nhập passphrase (password bảo vệ) tại thời điểm đó (và mỗi khi bạn đăng nhập, trong tương lai).

Tắt đăng nhập tên user / password

Khi bạn đã xác minh thông tin đăng nhập dựa trên khóa của bạn đang hoạt động, bạn có thể chọn tắt thông tin đăng nhập tên user / password để đạt được bảo mật tốt hơn. Để thực hiện việc này, bạn cần chỉnh sửa file cấu hình server SSH của bạn . Trên hệ thống Debian / Ubuntu, file này nằm ở / etc / ssh / sshd_config .

sudo vim /etc/ssh/sshd_config

Nhấn vào phím i trên bàn phím của bạn và chỉnh sửa các dòng, được tham chiếu bên dưới:

[...]
PasswordAuthentication no
[...]
UsePAM no
[...]

Để lưu, hãy chạm vào các phím sau trên bàn phím của bạn (theo thứ tự này): Esc , : , w , q , Enter . Bây giờ, hãy reload cấu hình của server SSH:

sudo reload ssh

Tài nguyên bổ sung

Như thường lệ, nếu bạn cần trợ giúp về các bước trong Hướng dẫn này, hãy tìm đến Cộng đồng DigitalOcean để được hỗ trợ bằng cách đặt (các) câu hỏi của bạn bên dưới.

Bài báo gửi bởi: Pablo Carranza

Tags:

Các tin liên quan