Tôi đang chạy Mac OS X và có vẻ như sau khi SSH vào một số máy, sử dụng tệp nhận dạng, 'ssh-agent' của tôi sẽ tạo ra rất nhiều mã nhận dạng / khóa và đôi khi cung cấp quá nhiều cho một máy từ xa, khiến chúng bị đá tôi trước khi kết nối:
Đã ngắt kết nối từ 10.12.10.16: 2: Quá nhiều lỗi xác thực cho cwd
Nó khá rõ ràng những gì đang xảy ra, và trang này nói về nó chi tiết hơn:
Máy chủ SSH chỉ cho phép bạn cố gắng xác thực một số lần nhất định. Mỗi lần thử mật khẩu không thành công, mỗi lần nhận lỗi / nhận dạng không thành công được cung cấp, v.v., chiếm một trong những lần thử này. Nếu bạn có nhiều khóa SSH trong đại lý của mình, bạn có thể thấy rằng máy chủ SSH có thể loại bạn ra trước khi cho phép bạn thử xác thực mật khẩu. Nếu đây là trường hợp, có một vài cách giải quyết khác nhau.
Khởi động lại sẽ xóa tác nhân và sau đó mọi thứ hoạt động tốt trở lại. Tôi cũng có thể thêm dòng này vào .ssh/config
tệp của mình để buộc nó sử dụng xác thực mật khẩu:
PreferredAuthentications keyboard-interactive,password
Nhưng dù sao, tôi đã thấy ghi chú trên trang mà tôi đã tham khảo khi nói về việc xóa các khóa khỏi tác nhân, nhưng tôi không chắc liệu điều đó có áp dụng trên máy Mac hay không vì chúng dường như bị xóa sau khi khởi động lại.
Có cách nào đơn giản để xóa tất cả các khóa trong 'ssh-agent' (điều tương tự xảy ra khi khởi động lại) không?
ssh-add -l
tôi không nhận được gì. Nếu tôi nhập vào,ssh -i ~/keyFileLocation.dsa un@remotehost
tôi nhận được hộp thoại bật lên OS X yêu cầu cụm mật khẩu. Tôi gõ nó vào và sau đó nó kết nối với tôi. Nếu tôi ngắt kết nối và sau đó nhậpssh-add -l
nó sẽ hiển thị cho tôi danh tính tôi vừa sử dụng. Sau khi tôi khởi động lại máy tính và gõssh-add -l
lại nó trống.ssh-add -D
làm việc tuyệt vời để xóa các phím mà không cần khởi động lại. Cảm ơn!