ssh -A không cho phép chuyển tiếp kết nối tác nhân xác thực


22

Tôi thích ssh -A, cho phép tôi sử dụng khóa ssh cục bộ của mình khi thiết lập kết nối từ máy chủ từ xa. Ví dụ, tôi ssh -A host1.example.comvà sau đó tôi có thể ssh host2.example.com(hoặc sử dụng git) và nó sử dụng khóa ssh của tôi từ máy ban đầu, trong trường hợp này phải là máy mac của tôi. Mặc dù điều này luôn làm việc với tôi trên Debian / Ubuntu, nhưng nó không hoạt động trên máy mac mới (Lion) của tôi.

Tôi đang thiếu gì ở đây? Làm cách nào để định cấu hình ssh để hoạt động chính xác với -A? Tôi có cần một ssh không phải là MacOS tiêu chuẩn không?

Câu trả lời:


33

Thật ra, câu trả lời rất đơn giản là bạn phải chạy

ssh-add

và sau đó tất cả hoạt động.

Về cơ bản, macOS đã có ssh-agent được thiết lập cho bạn, nhưng sau mỗi lần khởi động lại, bạn cần thêm các khóa của mình vào nó. ssh-add cho phép ssh-agent truy cập vào các khóa của bạn cho chu kỳ khởi động hiện tại. Bạn sẽ phải nhập mật khẩu cho khóa riêng của mình nếu bạn đã tạo mật khẩu.


Điều đó đã giải quyết vấn đề chuyển tiếp ssh mới nhất của tôi sau khi nâng cấp lên macOS (sau 5 năm, vẫn là một câu trả lời hữu ích, cảm ơn @rfay)
23tux

Điều này không hoạt động, nhưng một số giải thích tại sao sẽ hữu ích / giúp mọi người nhớ lệnh này.
Adam Parkin

2
@AdamParkin thêm một đoạn giải thích.
rfay

1

Khái niệm đằng sau ssh -Alà các đại lý ssh. Chúng chạy trong nền và thông qua việc sử dụng các biến môi trường, tác nhân có thể được định vị và tự động sử dụng để xác thực khi đăng nhập vào các máy khác bằng ssh. Có một cái nhìn vào trang chủ của ssh-agent để biết thêm chi tiết.

Với Mac OS X, ssh-agent nên được bắt đầu theo yêu cầu.

Để biết thêm thông tin xem:


1

Kể từ OS X 10.8, bạn cần thực hiện việc này một lần:

sudo touch /var/db/useLS

Và thêm phần này như một phần của bạn ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Lưu ý: công thức này là một phần của kịch bản bedouin của tôi .


Hừm, cứ thử đi; Các tác nhân sau đó bắt đầu, nhưng bạn vẫn phải ssh-add để có bất cứ điều gì để làm việc. Vì vậy, ssh-add một mình vẫn là câu trả lời, theo như tôi hiểu. Tôi đoán tôi nên thêm nó vào .bash_profile của tôi.
rfay

lol, nếu khóa riêng của tôi cần cụm mật khẩu thì sao?
Jeffrey04
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.