Android

Cách thiết lập đăng nhập ssh không mật khẩu

Quân đội Mỹ cấm binh sĩ sỠdụng phần mềm định vị khi trực chiến

Quân đội Mỹ cấm binh sĩ sỠdụng phần mềm định vị khi trực chiến

Mục lục:

Anonim

Secure Shell (SSH) là một giao thức mạng mật mã được sử dụng để kết nối an toàn giữa máy khách và máy chủ và hỗ trợ các cơ chế xác thực khác nhau. Hai cơ chế phổ biến nhất là xác thực dựa trên mật khẩu và xác thực dựa trên khóa công khai.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập xác thực dựa trên khóa SSH cũng như cách kết nối với máy chủ Linux của bạn mà không cần nhập mật khẩu.

Thiết lập SSH Passwordless Đăng nhập

Để thiết lập đăng nhập SSH không mật khẩu trong Linux, tất cả những gì bạn cần làm là tạo khóa xác thực công khai và nối nó vào tệp máy chủ từ xa ~/.ssh/authorized_keys .

Các bước sau đây sẽ mô tả quy trình định cấu hình đăng nhập SSH không mật khẩu:

  1. Kiểm tra cặp khóa SSH hiện có.

    Trước khi tạo cặp khóa SSH mới, trước tiên hãy kiểm tra xem bạn đã có khóa SSH trên máy khách chưa vì bạn không muốn ghi đè các khóa hiện có của mình.

    Chạy lệnh ls sau để xem có khóa SSH hiện tại không:

    ls -al ~/.ssh/id_*.pub

    Nếu có các khóa hiện có, bạn có thể sử dụng các khóa đó và bỏ qua bước tiếp theo hoặc sao lưu các khóa cũ và tạo một khóa mới.

    Tạo một cặp khóa SSH mới.

    Lệnh sau sẽ tạo cặp khóa SSH 4096 bit mới với địa chỉ email của bạn dưới dạng nhận xét:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Nhấn Enter để chấp nhận vị trí tệp và tên tệp mặc định:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Tiếp theo, công cụ ssh-keygen sẽ yêu cầu bạn nhập cụm mật khẩu an toàn. Cho dù bạn muốn sử dụng cụm mật khẩu tùy thuộc vào bạn, nếu bạn chọn sử dụng cụm mật khẩu, bạn sẽ có thêm một lớp bảo mật. Trong hầu hết các trường hợp, nhà phát triển và quản trị viên hệ thống sử dụng SSH mà không cần cụm mật khẩu vì chúng hữu ích cho các quy trình hoàn toàn tự động. Nếu bạn không muốn sử dụng cụm mật khẩu, chỉ cần nhấn Enter

    Enter passphrase (empty for no passphrase):

    Toàn bộ tương tác trông như thế này:

    Để chắc chắn rằng các khóa SSH được tạo, bạn có thể liệt kê các khóa riêng và khóa chung mới của mình với:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    Sao chép khóa công khai

    Bây giờ bạn đã tạo một cặp khóa SSH, để có thể đăng nhập vào máy chủ của bạn mà không cần mật khẩu, bạn cần sao chép khóa chung vào máy chủ mà bạn muốn quản lý.

    Cách dễ nhất để sao chép khóa công khai của bạn vào máy chủ của bạn là sử dụng lệnh có tên ssh-copy-id . Trên loại thiết bị đầu cuối máy cục bộ của bạn:

    ssh-copy-id remote_username@server_ip_address

    Bạn sẽ được nhắc nhập mật khẩu remote_username :

    remote_username@server_ip_address's password:

    Khi người dùng được xác thực, khóa chung sẽ được thêm vào tệp authorized_keys người dùng từ xa và kết nối sẽ bị đóng.

    Nếu vì lý do nào đó, tiện ích ssh-copy-id không khả dụng trên máy tính cục bộ của bạn, bạn có thể sử dụng lệnh sau để sao chép khóa chung:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Đăng nhập vào máy chủ của bạn bằng các khóa SSH

    Sau khi hoàn thành các bước trên, bạn sẽ có thể đăng nhập vào máy chủ từ xa mà không được nhắc nhập mật khẩu.

    Để kiểm tra, chỉ cần thử đăng nhập vào máy chủ của bạn thông qua SSH:

    ssh remote_username@server_ip_address

    Nếu mọi thứ suôn sẻ, bạn sẽ đăng nhập ngay lập tức.

Vô hiệu hóa xác thực mật khẩu SSH

Để thêm một lớp bảo mật bổ sung cho máy chủ của bạn, bạn có thể vô hiệu hóa xác thực mật khẩu cho SSH.

Trước khi vô hiệu hóa xác thực mật khẩu SSH, hãy đảm bảo bạn có thể đăng nhập vào máy chủ của mình mà không cần mật khẩu và người dùng bạn đang đăng nhập có quyền sudo.

Các hướng dẫn sau đây mô tả cách định cấu hình truy cập sudo:

  1. Đăng nhập vào máy chủ từ xa của bạn bằng các khóa SSH, với tư cách là người dùng có quyền sudo hoặc root:

    ssh sudo_user@server_ip_address

    Mở tệp cấu hình SSH /etc/ssh/sshd_config , tìm kiếm các chỉ thị sau và sửa đổi như sau:

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Khi bạn đã hoàn tất, hãy lưu tệp và khởi động lại dịch vụ SSH.

    Trên máy chủ Ubuntu hoặc Debian, hãy chạy lệnh sau:

    sudo systemctl restart ssh

    Trên máy chủ CentOS hoặc Fedora, hãy chạy lệnh sau:

    sudo systemctl restart sshd

Phần kết luận

Trong hướng dẫn này, bạn đã học cách thiết lập xác thực dựa trên khóa SSH, cho phép bạn đăng nhập vào máy chủ từ xa mà không cần cung cấp mật khẩu người dùng. Bạn có thể thêm cùng một khóa để phục vụ từ xa.

Chúng tôi cũng đã chỉ cho bạn cách vô hiệu hóa xác thực mật khẩu SSH và thêm một lớp bảo mật bổ sung cho máy chủ của bạn.

bảo mật ssh