Cách tắt mật khẩu thử lại trong lệnh ssh


11

Tôi muốn lệnh ssh chỉ cho phép một cơ hội nhập mật khẩu, nếu mật khẩu bị sai lần đầu tiên, ssh sẽ trở lại

Permission denied (publickey......).

Có một cờ cho ssh chỉ yêu cầu một lần mật khẩu không?

Thay vì:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

Tôi muốn:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

Giải pháp phải ở phía máy khách (ví dụ: một số cờ cho lệnh ssh hoặc sử dụng đường ống), tôi không thể chạm vào sshd_config, hoặc bất kỳ tệp cấu hình hệ thống nào khác. Bởi vì - nói chung - Tôi xây dựng phần mềm của bên thứ 3 (vì vậy tôi không thể tạo khóa cũng như cấu hình tệp hệ thống) truy cập vào máy chủ trong mạng LAN, mật khẩu được lưu trong DB (do đó không cần lần thử thứ hai). Và trong mã của tôi, nếu tôi có thể cho rằng tôi chỉ có một lần thử ssh/ scpnó sẽ đơn giản hóa mã có liên quan.


1
Như câu trả lời cho thấy, bạn có thể sửa đổi điều này, nhưng tại sao bạn muốn? Mọi người thường xuyên gõ nhầm, và mặc định được đặt để cho phép các điểm yếu như vậy. Một câu hỏi tốt hơn có thể là "làm thế nào để khóa một người dùng đã thất bại n nỗ lực đăng nhập?" đặc biệt nếu bạn đang tìm cách bảo vệ chống lại thông tin đăng nhập độc hại.
msw

Lý do của tôi là phức tạp và lâu dài. Điều tôi có thể nói là nếu mật khẩu không chính xác ở lần đầu tiên - nó sẽ tiếp tục không chính xác vào những lần sau.
NGÀY

2
Bạn muốn thực hiện chức năng quản trị hệ thống cơ bản nhất (xác thực) nhưng không thể chạm vào các tệp cấu hình hệ thống? Bạn đã hết may mắn. Nếu bạn quan tâm giải thích lý do dài và phức tạp của mình, có lẽ chúng tôi có thể thấy X thay vì Y mà bạn đã trình bày trong Vấn đề XY
msw

1
Cách duy nhất tôi có thể thấy điều này thậm chí là một vấn đề là nếu bạn đang sử dụng mật khẩu tự động không tương tác, trong trường hợp đó, bất kỳ tiện ích nào bạn đang sử dụng để làm điều đó nên có cơ sở để hủy bỏ sau một mật khẩu bị lỗi hoặc, nếu không , sau đó tiện ích đó nên là chủ đề của câu hỏi này.
Sammitch

1
Tôi cũng nhận thấy rằng ssh đang ghi nhận một nỗ lực thất bại tại auth khóa công khai, bạn đã xem xét sao chép khóa công khai của mình và tránh điều này hoàn toàn chưa?
Sammitch

Câu trả lời:


14

Trong trang man sshd config man 5 sshd_config:

 MaxAuthTries
     Specifies the maximum number of authentication attempts permitted
     per connection.  Once the number of failures reaches half this
     value, additional failures are logged.  The default is 6.

Vì vậy, một thiết lập MaxAuthTries 2sẽ là cài đặt bạn sẽ cần. sshdsẽ cần phải được khởi động lại sau đó (phải được chạy dưới quyền root):

/etc/init.d/ssh restart 

hoặc là

service ssh restart

Về phía khách hàng, điều này có thể được thiết lập với cài đặt ssh (xem man 5 ssh_configcác cài đặt bạn có thể áp dụng):

 NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

Vì vậy, chỉnh sửa ~/.ssh/configtệp của bạn và thêm:

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

Trường hợp <name_or_ip_of_host|*>IP chính hoặc tên máy chủ bạn đang sử dụng trên dòng lệnh hoặc *cho tất cả các lần thử kết nối máy chủ. Bạn cũng có thể chỉ định điều này trên dòng lệnh mà không phải chỉnh sửa /.ssh/configtệp của mình :

  ssh -o NumberOfPasswordPrompts=1 user@hostname 

Xin vui lòng xem chỉnh sửa câu hỏi. Tôi muốn sử dụng cờ / đường ống và không thay đổi trongsshd_config
Nir

Tôi đã chỉnh sửa câu trả lời của mình cho các tùy chọn phía khách hàng.
Drav Sloan

0

Nhìn vào MaxAuthTries trong sshd_config. Mặc định là 6, vì vậy hãy nhớ rằng bạn có thể đang thử pubkey auth trước khi bạn thử mật khẩu auth khi chọn giá trị của bạn.

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.