it-swarm-vi.tech

Làm cách nào để tạo ssh thất bại thay vì Nhắc mật khẩu nếu xác thực khóa công khai không thành công?

Tôi đã có một tập lệnh SSH một số máy chủ sử dụng xác thực khóa chung. Một trong các máy chủ đã ngừng cho phép tập lệnh đăng nhập do sự cố cấu hình, điều đó có nghĩa là tập lệnh bị kẹt với "Mật khẩu:" Nhắc, điều này rõ ràng không thể trả lời, do đó, nó thậm chí không thử các máy chủ còn lại trong danh sách.

Có cách nào để yêu cầu khách hàng ssh không nhắc mật khẩu nếu xác thực khóa không thành công, mà thay vào đó chỉ báo cáo lỗi kết nối và để tập lệnh của tôi tiếp tục?

110
rjmunro

Đối với OpenSSH, có BatchMode, ngoài việc vô hiệu hóa nhắc nhở mật khẩu, nên vô hiệu hóa truy vấn cho cụm mật khẩu cho các khóa.

BatchMode

Nếu được đặt thành mật khẩu, thì mật khẩu/truy vấn mật khẩu sẽ bị vô hiệu hóa. Tùy chọn này hữu ích trong các tập lệnh và các công việc hàng loạt khác mà không có người dùng nào có mặt để cung cấp mật khẩu. Đối số phải là tiếng vâng vâng, hay không. Mặc định là không có.

Sử dụng mẫu:

ssh -oBatchMode=yes -l <user> <Host> <dostuff>
145
Kjetil Joergensen
  • Để tắt xác thực mật khẩu cho lần thử kết nối ssh hiện tại, hãy chuyển tùy chọn này trên dòng lệnh:

    -o PasswordAuthentication=no
    
  • Để tắt xác thực mật khẩu cho tất cả các kết nối trong tương lai với bất kỳ Máy chủ nào, hãy thêm thông tin sau vào ~/.ssh/config:

    PasswordAuthentication no
    
  • Để vô hiệu hóa nó cho chỉ một số máy chủ, hãy thêm phần sau vào ~/.ssh/config:

    Host host1 Host2 Host3...
        PasswordAuthentication no
    

Các tùy chọn ở trên áp dụng cho các kết nối ngoài luồng ssh, tức là nơi bạn đang cố gắng kết nối với máy chủ ssh từ xa.

Để tắt xác thực mật khẩu trên máy chủ ssh (tức là áp dụng cho tất cả đến ssh kết nối), hãy thêm PasswordAuthentication no Vào /etc/ssh/sshd_config Và khởi động lại sshd.

24
cas

Nếu bạn đang sử dụng dropbear, chỉ cần thêm "-s "tùy chọn để vô hiệu hóa xác thực mật khẩu.

12
sybreon

Trên dòng lệnh (hoặc ~/.ssh/config) bạn có thể đặt PreferredAuthentications.

PreferredAuthentications=publickey
8
Rory