Double ssh yêu cầu cụm mật khẩu để mở khóa RSA, nhưng không nên


2

Tôi có hai máy, M1 và M2, cả hai đều chạy OS X và máy thứ ba, L, chạy Linux. M1 và M2 có các khóa RSA được mở khóa trong Keychain, vì vậy tôi có thể:

  • ssh từ M1 đến M2 mà không được yêu cầu nhập mật khẩu hoặc mật khẩu của khóa
  • ssh từ M2 đến L mà không được yêu cầu nhập mật khẩu hoặc mật khẩu của khóa

Tuy nhiên, khi tôi chuyển từ M1 sang M2, rồi đến L (trong khi vẫn hoạt động trên M1), nó sẽ hỏi tôi cụm mật khẩu của khóa! Tôi đã thử mở khóa thủ công bằng cách login.keychainsử dụng securitylệnh, nhưng dường như không có tác dụng.

Có chuyện gì thế? Làm cách nào tôi có thể nhân đôi ssh mà không cần nhập bất kỳ cụm mật khẩu nào?

Câu trả lời:


3

Móc khóa hoạt động chính xác như bình thường, cái mà -A làm là nó chuyển tiếp các khóa được tải của bạn từ M1 đến M2 và sang L. Tôi nghi ngờ rằng khi bạn đăng nhập vào M2, nó không khởi tạo khóa của bạn / bắt đầu một phiên đầy đủ vì quá trình đăng nhập đồ họa đã không xảy ra cùng với tất cả các tác dụng phụ của nó.

Nếu bạn muốn chuyển tiếp đại lý của mình bất cứ nơi nào bạn ssh, bạn nên tạo tệp ~ / .ssh / config và thêm một mục nhập cho máy chủ * với ForwardAgent được đặt thành có:

Host *
    ForwardAgent yes

Ngoài ra, bạn có thể cụ thể hơn về máy chủ nào bạn muốn chuyển tiếp đại lý của mình bằng cách thay thế * bằng tên máy chủ.


Vậy làm thế nào bạn có thể khởi tạo các khóa và bắt đầu một phiên đầy đủ khi chuyển sang M2?
Jesse Beder

Trong Linux / Solaris, tôi sẽ khởi động một ssh-agent và ssh-add tất cả các khóa riêng của tôi. Mặc dù nói chung, bạn không muốn làm điều đó. Bạn khởi động ssh-agent của bạn trên máy của bạn và sử dụng chuyển tiếp đại lý. Điều đó khiến bạn không cần phải có khóa riêng nhạy cảm trên đĩa trên tất cả các máy. Bạn có thể thử ssh-add -l (nó có thể nhắc nhập cụm mật khẩu)
mkomitee

2

Bạn đang cố gắng đăng nhập vào L từ M2. Điều đó có nghĩa là M2 phải có thông tin đăng nhập của bạn (khóa và cụm mật khẩu). Nhưng thông tin của bạn thực sự là trên M1.

Bạn có thể sao chép thông tin đăng nhập của mình sang M2, nhưng sau đó bạn phải tương tác với móc khóa trên M2. Ngoài ra, bạn có thể yêu cầu M2 liên hệ với móc khóa trên M1 thay vì móc khóa trên M2. Trên thực tế đây là phương pháp thông thường và một số cài đặt có tính năng vượt trội này, nhưng dường như không phải của bạn.

Cho phép chuyển tiếp đại lý từ M1 đến M2. Trên dòng lệnh, với OpenSSH, hãy chuyển -Atùy chọn (tức là chạy ssh -A M2trên M1). Bạn cũng có thể đặt ForwardAgentchỉ thị vào ~/.ssh/config. Có lẽ cũng có một cách GUI để làm điều này trên OSX.


Nhưng tôi đã có thể đăng nhập vào L từ M2 (xem điểm đạn thứ hai), nhưng chỉ khi tôi thực sự sử dụng M2. Đó là những gì rất khó hiểu với tôi. (Nhân tiện, -Atùy chọn này hoạt động, nhưng tôi muốn tìm hiểu tại sao móc khóa không hoạt động như tôi mong đợi.)
Jesse Beder

@Jlie: Khi bạn ở trên M2, thông tin đăng nhập của bạn trên móc khóa trên M2 sẽ được mở khóa và có sẵn cho quy trình ssh. Khi bạn đang ở trên M1, chỉ có khóa trên M1 được mở khóa. Tôi không quen thuộc với máy Mac, vì vậy tôi không biết có cách nào để mở khóa móc khóa của M2 khi bạn thực sự sử dụng M1 không, nhưng tôi dường như nhớ lại việc đọc rằng điều đó là không thể hoặc khó khăn.
Gilles

Tại sao không phải là thông tin xác thực mở khóa M2 khi tôi ssh vào nó? Có cách nào để làm cho nó hiệu quả như thể tôi đang ở trên M2, mặc dù tôi đang ở M1 không?
Jesse Beder
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.