Tôi đã có một quy trình tự động hóa đơn giản để viết cần sao chép một vài tệp từ máy chủ Linux sang cửa sổ qua SSH. Điều này có thể được thực hiện bằng cách sử dụng putty.Putty sẽ không lưu các phím để truy cập vào máy chủ khi chạy tập lệnh trong hudson
SSH, là một phần của giao thức, xác minh danh tính của máy chủ và nếu không biết là chính xác, sẽ nhắc bạn chấp nhận danh tính của máy chủ. Khi tôi kết nối thủ công máy chủ Linux với putty, nó sẽ không nhắc bất kỳ thông tin nào để chấp nhận danh tính của máy chủ. Nhưng một khi tôi đặt quá trình tự động hóa này vào Hudson như công việc lịch trình. Thông điệp chính xác là:
Khóa máy chủ của máy chủ không được lưu trong bộ nhớ. Bạn không có đảm bảo rằng máy chủ là máy tính bạn nghĩ. Máy quét khóa rsa2 của máy chủ là: ssh-rsa 1024 cc: 78: 13: a3: 68: a6: 59: 7e: b8: 23: 2d: 13: 3e: 66: 9b: b9 Nếu bạn tin tưởng máy chủ này , nhập "y" để thêm khóa vào bộ nhớ cache của PuTTY và thực hiện kết nối . Nếu bạn muốn tiếp tục kết nối chỉ một lần mà không cần thêm khóa vào bộ nhớ cache, hãy nhập "n". Nếu bạn không tin cậy máy chủ lưu trữ này, hãy nhấn Quay lại để hủy kết nối. Lưu trữ khóa trong bộ nhớ cache? (y/n) Đã hủy kết nối.
Thông thường bạn sẽ nhấn "Y" ở đây, giả sử khóa máy chủ là chính xác, để lưu trữ trong kết nối trong tương lai. Việc lưu trữ này đi vào Registry dưới HKEY_CURRENT_USER \ Software \ SimonTatham \ Putty \ SshHostKeys
Nhưng thật không may, quy trình tự động chạy ở Hudson không thể tương tác bằng cách nhấn “Y” để lưu trữ khóa máy chủ trong bộ đệm ẩn. Và tôi cũng không thể tái tạo vấn đề bằng cách đơn giản chạy tiến trình tự động hóa theo lệnh dos.
Có ai biết cách giải quyết sự cố không?
giải pháp rất thông minh để mô phỏng tương tác với tiền tố "echo y |" –
Tôi đã thử điều này và gặp rắc rối cho đến khi tôi nhận ra rằng tôi vẫn còn bao gồm tham số --batch. Tôi đã xóa nó và nó hoạt động chính xác. – MattEvansDev
Nếu mật khẩu không chính xác, thì "y" sẽ được lặp lại khi putty thử lại mật khẩu, khiến cho tập lệnh thất bại. –