ssh không cần mật khẩu

Ngay cả khi anh thích gõ mật khẩu mỗi lần truy cập cho khỏi quên thì những tác vụ kiểu như tự động rsync đến một máy khác sẽ buộc anh phải ssh không cần mật khẩu. Làm thế nào đây?

Google ra là ngay. Sau đây là kết quả.

Trước tiên là thử ls ~/.ssh/ xem đã có cặp khoá id_rsa chưa. Nếu có thì nhớ xem lúc tạo mình có để mật khẩu không. Nếu không đặt mật khẩu, anh có thể chuyển ngay sang Bước 2.

Bước 1

Trên máy của mình (local), anh dùng ssh-keygen để tạo một cặp khoá. Nó sẽ hỏi là lưu vào tập tin nào, mặc định sẽ là ~/.ssh/id_rsa (private, phải chmod 400) và ~/.ssh/id_rsa.pub (public).

Sau đó nó sẽ bảo là gõ mật khẩu hoặc bỏ trống. Tất nhiên là bỏ trống rồi (chỉ việc gõ enter/return) hai lần.

Bước 2

Tiếp theo là chép khoá public lên máy từ xa (remote, ví dụ: 192.168.1.100) bằng lệnh ssh-copy-id, cụ thể:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.100

Bước 3

Thế là xong. Bây giờ khi chạy ssh username@192.168.1.100 thì nó sẽ chẳng hỏi mật khẩu gì cả.

Giải thích

Ở “Bước 2”, ssh-copy-id đã chép nội dung của id_rsa.pub vào tập tin /home/username/.ssh/authorized_keys trên máy 192.168.1.100. Theo phỏng đoán thì khi anh chạy ssh username@192.168.1.100 ở “Bước 3” thì nó sẽ tự động xác thực bằng cách đối chiếu giữa khoá private (tập tin ~/.ssh/id_rsa) với khoá public (có trong tập tin ~/.ssh/authorized_keys ở máy remote).

Việc đăng nhập bằng cặp khoá SSH không chỉ tiện lợi mà trên hết là an toàn hơn so với việc gõ mật khẩu. Thậm chí, anh còn có thể cấm đăng nhập từ xa bằng mật khẩu để lỡ có lộ mật khẩu thì cũng không sao. Tất nhiên, nếu anh cho ai đó dùng máy và bị chép trộm khoá ~/.ssh/id_rsa thì không gì nhục bằng :v


Chuyên mục:

,

Một bình luận

  1. […] Và anh cũng đã làm mấy bước đơn giản để ssh vào máy chủ từ xa mà không cần mật khẩu. […]

Bình luận

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.