Cách sử dụng khóa SSH và tắt xác thực mật khẩu


12

Tôi đang cố gắng truy cập máy Mac từ xa (tôi có quyền truy cập vật lý vào máy Mac này) thông qua SSH từ máy khách Linux. Mục tiêu của tôi là truy cập máy Mac này từ bên ngoài mạng. Chuyển tiếp cổng được thiết lập trên bộ định tuyến. Từ máy tính khách của tôi, tôi có thể ssh user@iptruy cập IP công cộng và tôi có thể truy cập vào Mac, vì vậy việc chuyển tiếp cổng đang hoạt động.

Bây giờ tôi muốn thiết lập các khóa SSH. Tôi đã tạo khóa SSH trên máy khách của mình nhưng trước tiên tôi muốn nhận SSH Daemon trên thiết lập Mac. Tôi chỉnh sửa /etc/ssh_configvà thiết lập PasswordAuthentication no. Tôi đã khởi động lại SSH bằng các lệnh sau : sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist, sau đó sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Khi tôi cố gắng SSH lại từ máy khách, nó vẫn hỏi mật khẩu của tôi.

Tôi đã xem bài đăng này và từ câu trả lời tôi đã thêm vào UsePAM notệp cấu hình và khởi động lại dịch vụ launchctlmột lần nữa. Tôi vẫn đang được nhắc nhập mật khẩu.

Tôi cũng đã thử giải pháp ở đây . Tôi vẫn đang được nhắc nhập mật khẩu.

Làm cách nào để tôi thiết lập ssh_configđể nó không yêu cầu mật khẩu và chỉ chấp nhận khóa SSH? Tôi không khởi động lại daemon đúng cách? Có một bước nữa tôi đang thiếu?

Câu trả lời:


13

Tôi đã chỉnh sửa tập tin cấu hình sai! Thay vì /etc/ssh_config, tôi chỉnh sửa private/etc/sshd_config. Tôi nghĩ rằng điều này có thể cũng đã hoạt động nếu tôi chỉnh sửa /etc/sshd_configtheo câu trả lời được cập nhật từ @GhostLyrics, nhưng tôi chưa kiểm tra điều đó nên tôi không thể chắc chắn. Sau đó, tôi khởi động lại dịch vụ sudo launchctl stop com.openssh.sshdvà sau đó sudo launchctl start com.openssh.sshdtôi có thể có được hành vi mong muốn của mình. Đây là tài nguyên mà tôi tìm thấy thông tin thích hợp: /superuser/364304/how-do-i-configure-ssh-on-os-x

Dưới đây là các tùy chọn cấu hình tôi đã thay đổi:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Sau đó, tôi đã có thể tạo thành công các khóa SSH trên máy khách của mình, chuyển khóa công khai sang ~/.ssh/authorized_keysMac và đặt quyền cho tệp đó thành 644.

Điều quan trọng cần lưu ý là các quyền đó là dành cho khóa chung của tôi . Quyền khóa riêng của tôi được đặt thành 600 trên máy khách của tôi. Điều này thực sự quan trọng nếu bạn có cả khóa chung và khóa riêng trong ~/.sshthư mục của mình và có nhiều người dùng trên hệ thống. Nếu quyền khóa riêng của bạn được đặt thành 644 thì bất kỳ người dùng nào cũng có thể đọc khóa riêng của bạn và mạo danh bạn. Ngoài ra, các quyền cho ~/.sshthư mục nên là 700.


5
Trong nội bộ, /etc/sshd_config/private/etc/sshd_configlà cùng một tập tin. :)
GhostLyrics

8

/etc/ssh/ssh_configlà tệp cấu hình cho máy khách được sử dụng nếu bạn không có tệp cụ thể hơn trong thư mục chính của mình. Những gì bạn muốn chỉnh sửa là /etc/ssh/sshd_configcái cho máy chủ.

Bạn có thể sẽ muốn đặt PermitRootLogin without-password(hoặc no) và PasswordAuthentication noở đó.


Cập nhật: Vì bạn đang chạy Yosemite, tệp /etc/sshd_configtheo câu trả lời này: https://apple.stackexchange.com/a/167405/11135

Tiếp tục xây dựng tại sao nó vẫn nhắc nhở khi thiết PasswordAuthentication notrong /etc/ssh/ssh_configđiều quan trọng là phải hiểu những gì bạn đã cấu hình. "Khi thực hiện kết nối đi qua SSH, đừng cung cấp xác thực mật khẩu."


Tôi không có /etc/ssh/ssh_config, chỉ có một /etc/ssh_config. Tôi đang chạy trên Yosemite. Tôi đã thử PasswordAuthentication nonhưng nó vẫn nhắc tôi nhập mật khẩu.
beznez

Ah tôi thấy. Đó không phải là điều tôi muốn. Tôi muốn SSH từ máy khách Linux của tôi sang Mac bằng các khóa và không có mật khẩu. Tôi nên thay đổi gì cho một kết nối đến ?
beznez

/etc/sshd_configPasswordAuthentication no. Xin lỗi vì sự nhầm lẫn. Xin vui lòng cho tôi biết làm thế nào tôi có thể làm cho câu trả lời rõ ràng hơn. :)
GhostLyrics

Tôi vẫn nhận được hành vi tương tự. Nó nhắc tôi nhập mật khẩu khi tôi ssh từ máy Linux sang Mac.
beznez

Chúng ta hãy tiếp tục điều này trong trò chuyện chat.stackexchange.com/rooms/info/34931/ cấp
GhostLyrics
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.