Cho phép đăng nhập chỉ ssh-key vào máy Mac của tôi cho 1 người dùng


21

Tôi có Macbook Air mà tôi muốn cho phép truy cập SSH từ xa mà không cần mật khẩu. Tôi đã tạo một người dùng được gọi là remotepairtôi đã đăng nhập và xác minh rằng tôi có thể sử dụng máy Mac. Tôi cũng đã thêm người dùng này vào danh sách người dùng được phép của dịch vụ "Xóa đăng nhập" và bật dịch vụ. Tất cả điều này được thực hiện trong bảng điều khiển "Chia sẻ".

Tôi đã nhận được khóa công khai của một máy tính khác và thêm nó vào tập tin /Users/remotepair/.ssh/authorized_keys. Khi máy tính khác ssh remotepair@<my ip>tôi vẫn nhận được một dấu nhắc mật khẩu.

Làm cách nào để tắt mật khẩu này?


1
Tôi khuyên bạn nên thêm "xác thực chỉ khóa SSH" vào tiêu đề câu hỏi của bạn - cách nó đọc bây giờ nghe giống như đăng nhập GUI thông thường.
NRzingh

Câu trả lời:


27

Để vô hiệu hóa xác thực mật khẩu, bạn cần chỉnh sửa /etc/sshd_config. Trong Terminal:

sudo vim /etc/sshd_config

(hoặc thay thế bằng trình chỉnh sửa yêu thích của bạn)

Tìm dòng:

#ChallengeResponseAuthentication yes

Và thay đổi nó thành:

ChallengeResponseAuthentication no

Đó là, loại bỏ #ngay từ đầu, và thay đổi yesthành no.

Tất cả các lần đăng nhập ssh tiếp theo bây giờ sẽ YÊU CẦU bạn sử dụng khóa ssh và sẽ không nhắc nhập mật khẩu. Đảm bảo khóa ssh của bạn hoạt động trước khi thực hiện việc này nếu bạn không có quyền truy cập cục bộ! Không cần phải khởi động lại daemon ssh hoặc bất cứ điều gì vì nó được bắt đầu theo yêu cầu cho mỗi kết nối đến mới. Lưu ý rằng bạn cũng có thể thấy một PasswordAuthenticationdòng, nhưng mặc định là nođã có.

Nếu các khóa ssh của bạn không hoạt động thì đó thực sự là một vấn đề riêng biệt, nhưng điều này trả lời cho câu hỏi như nó được đặt ra bây giờ :)


Tôi cũng cần thêm người dùng vào cài đặt AllowUser. Tôi chỉ có thể đoán thiết lập GUI cũng không sửa đổi dòng văn bản này.
Jason

7
Lưu ý, trong các phiên bản sau của Mac OS X (chắc chắn là trong El Capitan), sshd_config đã được chuyển sang /etc/ssh/.
zelk

2
Lưu ý, kể từ MacOS Sierra (v10.12.x), mặc định cho PasswordAuthenticationđã thay đổi thành yes, vì vậy hãy chắc chắn thay đổi nó thành no.
Travis Clarke

3

Để cập nhật câu trả lời cho macOS Sierra (cụ thể là 10.12.6), nó xuất hiện tệp cấu hình ngay bây giờ /etc/ssh/sshd_config

Phải bỏ 2 dòng + sửa đổi để vô hiệu hóa hoàn toàn xác thực mật khẩu: (Đây là các dòng từ 57 đến 62, bao gồm trong sshd_configtệp mặc định )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Như đã đề cập trước đó, bạn có thể bật / tắt quyền truy cập ssh từ GUI System Preferences.app và không cần khởi động lại trình nền trong khi chỉnh sửa cấu hình.


1

Bạn nên kiểm tra quyền của các thư mục liên quan: /Users/remotepair//Users/remotepair/.ssh, chúng không được cho phép truy cập ghi bởi người dùng "khác". My .sshcó quyền truy cập chỉ dành cho chủ sở hữu.

Ngoài ra, trên hệ thống từ xa, hãy thực hiện ssh -v remotepair@yoursystemđể xem phương thức ủy quyền nào được phép và đã thử. Hãy tìm kiếm Authentications that can continue: publickey,password,keyboard-interactive. Có lẽ bạn phải kích hoạt RSAAuthenticationtrên hệ thống của bạn.


1

Trên hệ thống kiểm tra tại đây, việc vô hiệu hóa lời nhắc SSH yêu cầu hai dòng sau được thêm vào /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Các ý kiến ​​trong sshd_configcũng khuyên dòng sau đây được thêm vào:

UsePAM no
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.