Cách bật đăng nhập SSH không cần mật khẩu trên Linux
Đó là một ý tưởng tuyệt vời để đăng nhập vào máy chủ bảo mật của bạn mà không cần mật khẩu. Nghiêm túc, thoát khỏi nó. Không cần sử dụng mật khẩu trên một trong những dịch vụ bị tấn công nhiều nhất trên máy chủ web, phải không?
Được rồi, đủ đùa. Đó là sự thật, mặc dù. Xác thực dựa trên mật khẩu chuẩn trên SSH là một ý tưởng tồi. Mật khẩu có thể bị hỏng khá dễ dàng, và khi chúng là thứ duy nhất đứng giữa kẻ tấn công và truy cập không bị giới hạn vào máy chủ của bạn, bạn chắc chắn sẽ lo lắng.
Đó là lý do tại sao việc xác thực dựa trên khóa RSA là tốt hơn nhiều. Bạn có thể cấu hình máy chủ Linux của mình để chỉ cho phép truy cập từ các máy tính có khóa RSA mà nó đã chấp nhận. Bất kỳ ai khác sẽ bị từ chối ngay lập tức. Là một lợi ích bổ sung, bạn có thể tạo các khóa đó có hoặc không có mật khẩu, điều này hoàn toàn phụ thuộc vào bạn. Tuy nhiên, một khóa mạnh không có mật khẩu là tốt trong hầu hết các trường hợp.
Nếu bạn sử dụng các thiết bị Linux ở nhà, bạn có thêm lợi ích khi thuận tiện. Giả sử bạn muốn SSH vào máy trạm Linux của bạn từ máy tính xách tay của bạn. Bạn có thực sự muốn nhập mật khẩu của bạn mỗi lần? Thiết lập khóa SSH và bạn sẽ không cần.
Cài đặt các gói
Có một vài gói mà bạn cần. Bạn có thể đã có một số trong số họ, nhưng nó là một ý tưởng tốt để kiểm tra. Các gói khác nhau trên máy chủ và máy khách, nhưng cũng có cơ hội tốt cho cả hai máy là máy chủ và máy khách với nhau (tình trạng nhà), vì vậy bạn có thể muốn cài đặt cả hai bộ gói.
Trên máy chủ
Máy chủ chỉ cần cài đặt và chạy dịch vụ OpenSSH. Nó không phải là mặc định trên hệ thống Debian và Ubuntu. Nếu bạn chưa cài đặt, hãy làm như vậy.
sudo apt install openssh-server
Trên máy khách
Khách hàng cần gói ứng dụng khách OpenSSH. OpenSSH có một tiện ích tích hợp để tạo khóa.
sudo apt install openssh-client
Tạo khóa của bạn
Nó thực sự dễ dàng để tạo ra chìa khóa của bạn. Chỉ cần nói OpenSSH rằng bạn cần tạo khóa. Nó cũng là một ý tưởng tốt để xác định số lượng bit với cờ -b
và loại với -t
. Chìa khóa bit 4096 là tốt nhất. Nó cung cấp mã hóa mạnh hơn.
ssh-keygen -b 4096 -t rsa
Đầu tiên, tiện ích sẽ hỏi nơi bạn muốn lưu khóa. Chỉ cần nhấn Enter cho thư mục mặc định. Sau đó, nó sẽ yêu cầu một mật khẩu. Để trống để có khóa xác thực không cần mật khẩu và mật khẩu. Nếu bạn muốn sử dụng mật khẩu cho khóa của mình, hãy nhập mật khẩu đó.
Máy tính của bạn sẽ mất vài giây để tạo khóa của bạn. Khi nó được thực hiện, nó sẽ cho bạn biết rằng nó đã hoàn thành và in ra một hình ảnh nghệ thuật ASCII.
Gửi khóa của bạn
Để sử dụng khóa của bạn, bạn sẽ cần phải gửi nó đến máy chủ của bạn. OpenSSH cũng có một tiện ích tích hợp cho nó. Cho nó biết chìa khóa của bạn ở đâu và người dùng nào trên máy chủ liên kết nó với.
ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]
Nhập địa chỉ IP của máy chủ. Nó giống như bạn đang truy cập vào máy chủ qua SSH (bạn đang), nhưng nó chỉ gửi qua khóa.
Sau đó, thử truy cập lại máy chủ qua SSH. Lần này nó chỉ cho phép bạn vào mà không cần mật khẩu.
Đặt cấu hình SSH để chặn mật khẩu
Để bảo mật tốt nhất, bạn cần tắt thông tin đăng nhập mật khẩu SSH trên máy chủ. Bạn có thể tìm thấy cấu hình máy chủ SSH tại "/ etc / ssh / sshd_config." Mở tệp đó trên máy chủ bằng sudo
và trình soạn thảo văn bản yêu thích của bạn.
Tìm các dòng bên dưới và chỉnh sửa chúng giống như ví dụ. Bỏ ghi chú cả hai mục nhập và thay đổi giá trị thành no
.
PasswordAuthentication không PermitEmptyPasswords no
Điều đó sẽ không làm bất cứ điều gì nếu bạn bật xác thực PAM. Tìm dòng bên dưới và đặt thành no
.
UsePAM no
Một khi các mục được sửa đổi, lưu và thoát tệp, rồi khởi động lại máy chủ SSH để chúng có hiệu lực.
sudo systemctl khởi động lại sshd
Nếu bạn vẫn quyết định giữ lại phương thức xác thực mật khẩu, đừng quên thiết lập xác thực hai yếu tố làm lớp bảo vệ bổ sung.
Đó là nó! Máy chủ của bạn an toàn hơn nhiều mà không cần mật khẩu. Bạn cũng có thêm lợi ích của việc không cần phải nhập chúng vào. Bạn cũng có thể trao đổi khóa duy nhất của mình với bao nhiêu máy chủ tùy thích.