SSH ForwardAgent beberapa hop

15

Saya sudah mencari solusi untuk masalah berikut selama 2 jam terakhir tanpa hasil.

Pengembangan:

Saya menggunakan otentikasi publickey untuk terhubung ke server saya. Saya menggunakan penerusan ssh-agent agar tidak harus mengelola kunci publik / privat.

Katakanlah saya punya server A, B and C.

Ini bekerja dengan sangat baik jika saya terhubung LOCAL ---> A ---> B.

Ini juga berfungsi dengan baik jika saya melakukannya LOCAL ---> A ---> C.

Sekarang, jika saya mencoba LOCAL ---> A ---> B ---> C, SSH tidak dapat terhubung B to C.

Perlu dicatat: Saya terhubung ke server A sebagai likuiditas, sedangkan saya terhubung ke server B sebagai root. Menyambung ke server B karena likuiditas memperbaiki masalah, tetapi ini bukan pilihan bagi saya.

Sesuai rekomendasi pengguna, saya menggunakan ssh -Asetiap waktu untuk memastikan bahwa penerusan agen diaktifkan.

Saya menemukan satu pertanyaan serupa, tanpa jawaban di sini: Apakah mungkin untuk meneruskan ssh-agent melalui beberapa hop?

Menurut @Zoredache di sini: /server//a/561576/45671 Saya hanya perlu menyesuaikan konfigurasi klien saya di setiap sistem perantara. Yang saya yakin saya lakukan.

likuiditas
sumber
Pertimbangkan menggunakan ProxyCommandhopping (seperti yang dijelaskan di sini ) daripada meneruskan agen SSH. Untuk pendekatan Anda, Anda harus mempercayai semua mesin dalam rantai karena mereka dapat (ab) menggunakan kunci pribadi Anda. Saya juga menyukai pendekatan ProxyCommand jauh lebih baik karena pemeriksaan host yang dikenal dilakukan secara lokal, dan terlebih lagi, Anda dapat mengatur rantai di konfigurasi SSH Anda sehingga Anda dapat menggunakan satu perintah untuk menyambung ke C.
gertvdijk
Sayangnya saya tidak bisa menggunakan perintah proxy. Terlepas dari pertimbangan keamanan, saya benar-benar perlu menggunakan forwardAgent.
likuiditas
@liquidity, bisakah saya bertanya mengapa Anda tidak ingin menggunakan proxyCommand? Saya memiliki masalah yang sama dan karena saya mengerti proxyCommand lebih aman. Jadi saya berpikir yang mana untuk digunakan ..
grep

Jawaban:

13

Agar agen meneruskan pekerjaan melalui beberapa hop, Anda hanya perlu menyesuaikan konfigurasi klien Anda pada setiap sistem perantara sehingga penerusan agen.

Bisa jadi hanya memastikan Anda /etc/ssh/ssh_configtelah mengkonfigurasi ini. Tetapi jika Anda memiliki konfigurasi per-klien, ~/.ssh/configAnda mungkin perlu menyesuaikan pengaturan itu juga.

Host *
    ForwardAgent yes

Anda dapat melihat apakah penerusan agen terjadi atau jika ada kesalahan jika Anda hanya menambahkan -vopsi.

$ 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:~$

Juga pastikan Anda memiliki set variabel lingkungan yang valid.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"
Sakit kepala
sumber
4
Layak menyebutkan flag -A ke ssh sebagai alternatif cepat dan kotor untuk opsi ssh_config atau ~ .ssh / config. -Sebuah [e] penerusan koneksi dari agen otentikasi.
dmourati
1
Pada setiap langkah, Anda dapat menggunakan ssh-add -luntuk membuat daftar kunci yang menurut ssh dapat diakses melalui agen Anda. Pastikan Anda meneruskannya di setiap koneksi!
MikeyB
Terima kasih! Perhatikan juga bahwa jika semuanya dilakukan dengan benar, Anda tidak perlu memulai ssh-agent secara manual di server terakhir. Ini akan mulai secara otomatis jika Anda melihat baris Requesting authentication agent forwarding.dalam hasil debug Anda. Jika Anda mencoba .bash_profileuntuk memulai ssh-agent, hapus dari sana atau agen Anda akan mulai lagi tanpa identitas.
2upmedia