SSH ForwardAgent nhiều bước nhảy


15

Tôi đã tìm kiếm một giải pháp cho vấn đề sau trong 2 giờ qua mà không gặp may mắn.

Phát triển:

Tôi đang sử dụng xác thực khóa công khai để kết nối với máy chủ của mình. Tôi sử dụng chuyển tiếp ssh-agent để không phải quản lý khóa công khai / riêng tư.

Hãy nói rằng tôi có máy chủ A, B and C.

Điều này hoạt động rất tốt nếu tôi kết nối từ LOCAL ---> A ---> B.

Nó cũng hoạt động rất tốt nếu tôi làm LOCAL ---> A ---> C.

Bây giờ, nếu tôi thử LOCAL ---> A ---> B ---> C, SSH không thể kết nối từ B to C.

Đáng chú ý: Tôi kết nối với máy chủ A dưới dạng thanh khoản, trong khi tôi kết nối với máy chủ B là root. Kết nối với máy chủ B vì thanh khoản khắc phục sự cố, nhưng đây không phải là một tùy chọn cho tôi.

Theo khuyến nghị của người dùng, tôi sử dụng ssh -Amỗi lần để đảm bảo rằng chuyển tiếp đại lý được bật.

Tôi tìm thấy một câu hỏi tương tự, không có câu trả lời nào ở đây: Có thể xâu chuỗi chuyển tiếp ssh-agent qua nhiều bước nhảy không?

Theo @Zoredache tại đây: /server//a/561576/45671 Tôi chỉ cần điều chỉnh cấu hình máy khách của mình trên mỗi hệ thống trung gian. Mà tôi tin rằng tôi đã làm.


Cân nhắc sử dụng ProxyCommandnhảy (như được giải thích ở đây ) thay vì chuyển tiếp tác nhân SSH. Đối với phương pháp của bạn, bạn sẽ phải tin tưởng tất cả các máy trong chuỗi vì họ có thể (ab) sử dụng khóa riêng của bạn. Tôi cũng thích cách tiếp cận ProxyCommand hơn rất nhiều vì kiểm tra máy chủ đã biết được thực hiện cục bộ và hơn nữa, bạn có thể thiết lập chuỗi trong cấu hình SSH của mình để bạn có thể sử dụng một lệnh để kết nối với C.
gertvdijk

Rất tiếc, tôi không thể sử dụng proxyCommand. Mặc dù cân nhắc về bảo mật, tôi thực sự cần sử dụng ForwardAgent.
thanh khoản

@l Liquidity Tôi có thể hỏi bạn tại sao bạn không muốn sử dụng proxyCommand không? Tôi có cùng một vấn đề và như tôi hiểu proxyCommand an toàn hơn. Vì vậy, tôi đang suy nghĩ nên sử dụng cái nào ..
grep

Câu trả lời:


13

Để chuyển tiếp tác nhân thông qua nhiều bước, bạn chỉ cần điều chỉnh cấu hình máy khách của mình trên mỗi hệ thống trung gian để chuyển tiếp tác nhân.

Nó có thể chỉ đơn giản là đảm bảo rằng bạn /etc/ssh/ssh_configđã cấu hình này. Nhưng nếu bạn có cấu hình cho mỗi khách hàng, ~/.ssh/configbạn cũng có thể cần phải điều chỉnh các cài đặt đó.

Host *
    ForwardAgent yes

Bạn có thể xem nếu chuyển tiếp đại lý xảy ra hoặc nếu có lỗi, bạn chỉ cần thêm -vtùy chọn.

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

Cũng xác minh bạn có một bộ biến môi trường hợp lệ.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

4
Đáng nói là cờ -A thành ssh như một sự thay thế nhanh chóng và bẩn thỉu cho tùy chọn ssh_config hoặc ~ .ssh / config. -A [e] chuyển tiếp kết nối tác nhân xác thực.
dmourati

1
Ở mỗi bước, bạn có thể sử dụng ssh-add -lđể liệt kê các khóa mà ssh nghĩ rằng nó có thể nhận được thông qua đại lý của bạn. Hãy chắc chắn rằng bạn đang chuyển tiếp nó trên mỗi kết nối!
MikeyB

Cảm ơn! Cũng lưu ý rằng nếu mọi thứ được thực hiện chính xác, bạn sẽ không phải tự khởi động ssh-agent trên máy chủ cuối cùng. Nó sẽ tự động bắt đầu nếu bạn thấy dòng Requesting authentication agent forwarding.trong đầu ra gỡ lỗi của bạn. Nếu bạn đã thử thông qua .bash_profileđể bắt đầu ssh-agent, hãy xóa nó khỏi đó nếu không đại lý của bạn sẽ bắt đầu lại mà không có bất kỳ danh tính nào.
2upmedia
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.