Lệnh xác thực với SSH


22

Khi tôi đăng nhập qua ssh với -vtôi thấy ssh đang xác thực theo cách sau

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

Tôi muốn thay đổi thứ tự ... có ý kiến ​​gì không?

Vấn đề lớn hơn của tôi là người dùng có tài khoản bị khóa, vẫn có thể đăng nhập thông qua khóa công khai. Tôi đã thấy rằng tôi có thể thêm người dùng vào một nhóm "ssh-lock" thêm từ chối nhóm đó khỏi sshing, nhưng tôi vẫn tự hỏi liệu có cách nào để nói với ssh'd: Vui lòng kiểm tra mật khẩu trước khi khóa ...


1
Tôi nghĩ rằng bạn đang tiếp cận sai cách này - các khóa (thường) an toàn hơn mật khẩu. Nếu tài khoản bị khóa, bạn cần thông báo cho sshd daemon không cho phép người dùng đăng nhập bất kể phương thức xác thực.
EightBitTony

Như tôi đã nói, tôi đã tìm thấy một giải pháp, thông qua Denygroup. Tôi đang hỏi nó vì lợi ích.
Oz123

Câu trả lời:


31

Máy chủ ssh quyết định tùy chọn xác thực nào cho phép, máy khách ssh có thể được cấu hình để quyết định theo thứ tự nào để thử chúng.

Máy khách ssh sử dụng PreferredAuthenticationstùy chọn trong tệp cấu hình ssh để xác định điều này.

Từ man ssh_config( xem trực tuyến tại đây ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

Tôi không tin điều đó là có thể, mà không cần chơi với nguồn, để nói với máy chủ OpenSSH thích một thứ tự nhất định - nếu bạn nghĩ về nó, dù sao thì nó cũng không có ý nghĩa gì.


Nếu bạn đang sử dụng Git Bash cho Windows, hãy lưu cấu hình ssh của bạn vào~/.ssh/config
Spencer Williams

Thứ tự có thể có ý nghĩa nếu một phương thức phụ thuộc vào phương pháp trước đó. Ví dụ: 2FA trong tương tác bàn phím có thể phụ thuộc vào người dùng đã cung cấp mật khẩu hợp lệ trước tiên.
steveayre

Bạn có thể đăng một nguồn cho nơi bạn đã sao chép-dán thông tin PreferredAuthentuggest ở trên không? Tôi không thấy nó trong man ssh, cũng không /etc/ssh/ssh_config, cũng không /etc/ssh/sshd_config. Bạn lấy những thông tin này ở đâu?
Gabriel Staples

Đã tìm thấy nó! Nó đã ở trong man ssh_config. Tôi đã gửi một bản chỉnh sửa để xem xét để cập nhật câu trả lời của bạn để chứa nguồn này. Xin trích dẫn nguồn lần sau! Cảm ơn nhiều.
Gabriel Staples

18

Thêm điều này:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... Tôi /etc/ssh/ssh_configđã giúp tôi giải quyết vấn đề này và cũng tiết kiệm rất nhiều thời gian!

Bạn có thể kiểm tra nếu nó hoạt động bằng cách sử dụng ssh -v user@hostlệnh để kết nối, trong đó -vviết tắt của "verbose".


2
Đảm bảo rằng bạn đang thêm tệp này vào đúng tệp ssh_configvà không sshd_config. Cái sau sẽ khiến ssh của bạn thất bại!
Oranges13

0

Thêm vào hai câu trả lời khác đã đề cập đến PreferredAuthenticationstùy chọn, tôi muốn thêm bạn không cần chỉnh sửa bất kỳ tệp nào để đặt cài đặt này nếu bạn không muốn . Thay vào đó, bạn chỉ có thể đặt nó ở dòng lệnh cho một cuộc gọi riêng lẻssh , với -otùy chọn, như sau:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

Tài liệu tham khảo:

  1. Để đọc thêm về PreferredAuthenticationstùy chọn, xem man ssh_config( xem trực tuyến tại đây ). Cũng đọc về ssh -otùy chọn trong các man sshtrang hướng dẫn ( trực tuyến tại đây ).
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.