Chứng thực khóa công khai cho người dùng SSH với sự tiện lợi của việc đăng nhập mà không cần nhập mật khẩu. Các khóa SSH cũng là an toàn hơn so với mật khẩu, bởi vì chìa khóa riêng được sử dụng để bảo mật kết nối là không bao giờ được chia sẻ. Các chìa khóa riêng cũng có có thể được mã hóa để nội dung của chúng không có thể được đọc một cách dễ dàng. Trong khi các mật khẩu SSH không yêu cầu các khóa được thiết lập, mật khẩu để giải mã các khóa riêng vẫn được yêu cầu. Để thuận tiện, tùy thuộc vào bảo mật máy trạm (workstation) của bạn, bạn có thể thêm mật khẩu mới đến keychain của bạn để nó được lưu sau khi đăng nhập đầu tiên. Giới thiệu về xác thực các khóa SSH Khóa SSH đi theo cặp; một khóa cá nhân và một khóa công khai. Thông thường các khóa riêng được lưu theo dạng ~ /.ssh/id_<type> và khóa công khai là ~/.ssh/id_<type>.pub. Các loại mã hóa thường được sử dụng bởi mặc định là RSA, vì vậy các khóa của bạn nên được đặt tên id_rsa và id_rsa.pub. Khóa công khai là có nghĩa là được trao một cách tự do, và thêm vào máy chủ bạn muốn kết nối tới trong tập tin ~ /.ssh/ authorized_keys. Các khóa riêng cần được bảo vệ trên máy tính local của bạn với các quy tắc truy cập nghiêm ngặt. Nó có thể được hiểu dễ dàng hơn để nghĩ về khóa SSH trong ví dụ về khóa và chìa khóa. Phần nào là khóa, có thể được sao chép vào nhiều địa điểm miễn là phần khóa riêng không bị tổn hại. Giới thiệu về mã hóa cục bộ Từ khi khóa riêng cần phải được giữ bí mật để ngăn chặn truy cập trái phép vào máy chủ của bạn, vì thế chúng phải được mã hóa trên hệ thống của bạn. Điều này giúp đảm bảo rằng chỉ những cá nhân với mật khẩu mã hóa sẽ có thể sử dụng các khóa riêng. Một cụm từ mật khẩu (passphrase) được sử dụng để mở khóa các khóa riêng và không được truyền dưới mọi hình thức đến các máy chủ từ xa. Khi bạn tạo ra khóa riêng của bạn, hãy chắc chắn ghi chú lại cụm từ mật khẩu của bạn, vì bạn sẽ cần nó để đăng nhập đầu tiên đến máy chủ từ xa. Hệ điều hành Linux và Unix-like Quá trình để tạo ra các khóa SSH và kết nối với một máy chủ từ xa từ một Linux, Apple OS X, hoặc hệ điều hành Unix-like được nêu dưới đây. Tạo khóa Quá trình tạo khoá với một phiên bản mới của gói OpenSSH là giống nhau trên nhiều hệ điều hành khác nhau. Điều này bao gồm tất cả các bản phân phối Linux được cung cấp bởi máy chủ, các máy trạm chạy Linux, và Apple OS X. 1. Để tạo ra các phím SSH cho máy chủ của bạn, thực hiện lệnh sau trên hệ thống local của bạn: Mã: ssh-keygen Lưu ý: Hãy cẩn thận khi chạy ssh-keygen, nếu bạn đã từng tạo ra khóa riêng và các khóa đó được lưu vào đường dẫn mặc định, /home/user/.ssh/id_rsa. Nếu bạn chạy lệnh trên một lần nữa và không chỉ định một con đường khác nhau, bạn có thể ghi đè lên các khóa riêng trên hệ thống local của bạn. Nếu bạn ghi đè lên các khóa riêng của hệ thống local sau khi sử dụng khóa công khai phù hợp để bảo vệ máy chủ của bạn, bạn có thể mất khả năng truy cập vào máy chủ của bạn thông qua SSH. Tùy chọn: để tăng sự an toàn của chính bạn, tăng kích thước với cờ -b. Giá trị tối thiểu là 768 byte và nếu bạn không sử dụng cờ, là 2048 byte. Chúng tôi đề nghị sử dụng 4096 byte: Mã: ssh-keygen -b 4096 2. Trả lời tất cả các câu hỏi khi được nhắc nhở. Bạn có thể chấp nhận giá trị mặc định cho tất cả mọi thứ ngoại trừ cụm từ mật khẩu (passphrase). Khi bạn nhận được câu hỏi mật khẩu, nhập một loạt các chữ cái và các con số cho các cụm từ mật khẩu (passphrase) hai lần; một lần để nhập cụm từ mật khẩu (passphrase) mới và một lần để xác nhận. Quan trọng: hãy chắc ghi chú lại cụm từ mật khẩu (passphrase) của bạn, vì bạn sẽ cần nó sau này. Bạn có thể chấp nhận giá trị mặc định cho các câu hỏi khác bằng cách nhấn Return (Enter) khi được nhắc nhở: Mã: user@linode: ssh-keygen -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23 user@linode Các phím SSH mới được tạo ra đều nằm trong thư mục ~/.ssh/. Bạn sẽ tìm thấy chìa khóa riêng trong tập tin ~/.ssh/id_rsa và khoá công khai trong tập tin ~/.ssh/id_rsa.pub. Uploading các khóa Xin lưu ý rằng các bước sau đây được thực hiện trên vị trí máy chủ từ xa của bạn.. 1. Trước khi bạn tải lên các khóa, xác minh rằng thư mục .ssh của bạn tồn tại bằng cách sử dụng các lệnh sau đây từ thư mục home của bạn (thư mục mặc định khi bạn đăng nhập): Mã: ls -al 2. Nếu thư mục .ssh tồn tại, tiến hành sang Bước 3. Nếu thư mục không tồn tại, sử dụng lệnh sau trong thư mục /home/user để tạo ra nó: Mã: mkdir .ssh Các bước sau đây được thực hiện trên máy tính local của bạn: 3. Sao chép khóa công khai vào tập tin ~/.ssh/authorized_keys trên máy từ xa, sử dụng lệnh sau đây. Thay thế user SSH và tên miền theo cài đặt trên hệ thống của bạn: Mã: scp ~/.ssh/id_rsa.pub user@example.com:/home/user/.ssh/uploaded_key.pub 4. Chạy lệnh sau đây để sao chép chìa khóa đến tập tin authorized_keys. Thay thế user SSH và tên miền theo cài đặt trên hệ thống của bạn: Mã: ssh user@example.com "echo `cat ~/.ssh/uploaded_key.pub` >> ~/.ssh/authorized_keys" Kết nối đến máy chủ từ xa Phần cuối cùng trong quá trình SSH là để truy cập máy chủ của bạn với khóa riêng mới của bạn. 1. Kết nối đến máy chủ từ xa. 2. Tùy thuộc vào môi trường máy tính để bàn của bạn, một cửa sổ có thể xuất hiện yêu cầu bạn nhập mật khẩu. Nếu không, bạn sẽ được nhắc trong màn hình terminal. Mật khẩu này là các cụm từ mật khẩu (passphrase) mà bạn đã tạo cho mã hóa khóa riêng. 3. Nếu bạn đang ở trên một máy tính riêng, bạn có thể nhấp vào checkbox Remember password in my keychain box to save your passphrase. Nếu bạn đang đăng nhập thông qua một máy tính công cộng, không nhấp vào checkbox này, vì điều này sẽ làm tổn hại an ninh của bạn và cho phép kẻ xấu truy cập vào máy chủ của bạn. 4. Nhấp vào nút OK. Bây giờ bạn sẽ được kết nối với máy chủ của bạn bằng cách sử dụng SSH. Hệ điều hành Windows Trước khi bạn có thể tạo ra một khoá SSH, bạn sẽ cần phải tải về và cài đặt PuTTYgen (puttygen.exe) và PuTTY (putty.exe). Hai chương trình có sẵn để tải về tại đây. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Tạo khóa dùng PuTTY Khi PuTTYgen đã hoàn tất tải về, nó có thể chạy ngay lập tức, mà không cần cài đặt. 1. Double-click vào chương trình thực thi tải về và nhấp vào nút Run. 2. Đọc cảnh báo, và sau đó nhấp vào nút Run để tiếp tục 3. Bạn sẽ được đưa trực tiếp vào màn hình tạo ra khóa. Bạn có thể chọn để tăng số lượng các bit lên 4096. Bấm vào nút Generate để tạo ra những khóa công khai và khóa riêng mới. 4. Một khi các khóa bắt đầu tạo ra, tiếp tục di chuyển chuột của bạn cho đến khi toàn bộ thanh lấp đầy với màu xanh lá cây. Chương trình sử dụng các đầu vào ngẫu nhiên từ con chuột của bạn để tạo ra một chìa khóa duy nhất. 5. Khóa công khai đã được tạo ra và xuất hiện trong cửa sổ đầu tiên. 6. Trước khi tiếp tục, bạn sẽ cần phải sao chép khóa công khai mới được tạo ra sang Notepad. Chỉ cần chọn văn bản và sao chép nó vào một tập tin văn bản mới. Hãy chắc chắn rằng các tập tin được lưu ở một vị trí dễ nhớ, vì bạn sẽ cần nó sau này. Lưu ý: Khi lưu khóa công khai, đảm bảo bạn lưu nó trong một định dạng rõ như .txt. Các định dạng tập tin khác như .rtf .doc có thể thêm các ký tự bổ sung thông qua mã hóa, điều đó có thể ngăn chặn cặp khóa của bạn phù hợp với nhau. Khóa công khai nên có một dòng duy nhất, không có bất kì vi phạm. 7. Nhập cụm từ mật khẩu trong text box Key passphrase, và nhập một lần nữa vào text box Confirm passphrase để xác nhận. Các cụm từ mật khẩu nên chứa các chữ cái, số, các kí tự đặc biệt. Các cụm từ mật khẩu nên có một cái gì đó độc đáo và không dễ nhận ra. Quan trọng: nên ghi chú lại cụm từ mật khẩu của bạn, vì bạn sẽ cần nó sau này. 8. Sau khi bạn đã nhập cụm từ mật khẩu của bạn, nhấp vào nút Save private key. Điều này sẽ lưu lại được khóa riêng đến máy tính của bạn. 9. Giữ vị trí mặc định và tên của tập tin khóa riêng và nhấp vào nút Save. Lưu ý rằng nếu bạn có kế hoạch tạo nhiều khóa để kết nối với các máy chủ SSH khác nhau, bạn sẽ cần phải lưu từng cặp khóa cho mỗi máy chủ với tên gọi khác nhau để ngăn chặn ghi đè lên các tập tin quan trọng. Hãy ghi nhớ tên và vị trí của khóa riêng. Bạn sẽ cần nó trong phần tiếp theo. Kết nối đến máy chủ từ xa Bây giờ là lúc để kết nối với máy chủ của bạn với kết nối SSH, bạn vừa tạo ra. 1. Khởi chạy PuTTY. 2. Dưới menu Connection, dưới SSH, chọn Auth. 3. Bạn sẽ cần khai báo với PuTTY vị trí của khóa riêng. Điều này có thể được thực hiện bằng cách bấm vào nút Browse và tìm đến file khóa riêng, hoặc bằng cách gõ vào vị trí của các tập tin trong phần trước. 4. Để thiết lập một session, nhấp vào Session phía dưới Category. Nhập tên máy chủ hoặc địa chỉ IP của máy chủ của bạn. Lưu ý: nút radio SSH được chọn theo mặc định và trường Port đã được điền vào. Tùy chọn: Bạn có thể lưu kết nối này như là mặc định bằng cách nhấn vào nút Save, hoặc bằng cách nhập tên vào trường Saved Sessions, và sau đó nhấp vào nút Save. 5. Nhấp vào nút Open để thiết lập kết nối. Bạn sẽ được nhắc nhở để nhập tên đăng nhập và mật khẩu của bạn. 6. Sự kết hợp của các lệnh dưới đây sẽ tạo ra một thư mục .ssh trong thư mục home trên máy chủ của bạn, tạo ra một tập tin authorized_keys trống ở bên trong, và thiết lập các quyền truy cập. Nhập các lệnh sau tại dấu nhắc và nhấn Enter: Mã: mkdir ~/.ssh; touch ~/.ssh/authorized_keys; chmod 700 ~/.ssh 7. Chỉnh sửa các tập tin mới được tạo ra bằng cách sử dụng một trình soạn thảo văn bản như nano: Mã: nano ~/.ssh/authorized_keys 8. Sao chép nội dung của khóa công khai từ máy trạm của bạn vào tập tin authorized_keys. Hãy chắc chắn rằng bạn lưu tập tin sau khi thoát. Thêm một lớp bảo mật bổ sung, sửa đổi các quyền truy cập file: Mã: chmod 600 ~/.ssh/authorized_keys 9. Thoát PuTTY, sau đó kết nối lại và mở lại phiên của bạn bằng cách nhấn tên và đó nhấp vào nút Load. (Hoặc, hãy làm theo các bước 3 và 4 một lần nữa để bắt đầu một phiên SSH mới). Bạn sẽ được nhắc nhở để nhập vào tên đăng nhập của bạn như trước. Tuy nhiên, thời gian này, bạn sẽ được nhắc với mật khẩu SSH của bạn, thay vì mật khẩu của người sử dụng máy chủ của bạn. Nhập mật khẩu và nhấn Enter. WinSCP Tải lên các khóa công khai trong Windows cũng có thể được thực hiện bằng WinSCP. Trong cửa sổ đăng nhập, nhập địa chỉ IP public của máy chủ của bạn hoặc tên máy chủ, và tên user không phải user root và mật khẩu. Nhấn vào Login để kết nối. Một khi WinSCP đã kết nối, bạn sẽ thấy hai phần chính. Phần bên trái cho thấy các tập tin trên máy tính của bạn và phần bên phải cho thấy các tập tin trên máy chủ của bạn. Sử dụng file explorer ở bên trái, tìm đến tập tin mà bạn đã lưu khóa công khai của bạn trong đó, chọn tập tin đó, và nhấn Upload trên thanh công cụ. Bạn sẽ được nhắc nhở để nhập đường dẫn nơi bạn muốn đặt tập tin trên máy chủ của bạn. Tải lên các tập tin đến /home/user/.ssh/authorized_keys, thay thế user với user mà bạn cài đặt.