Memeriksa lingkungan SSH_AUTH_SOCK
bagus untuk koneksi ssh langsung.
Jika Anda menggunakan proxy ( proxy_command
) Anda mungkin memiliki konksi yang terlihat seperti:
local
-> hostA
-> hostB
-> hostC
->hostD
Jika penerusan agen aktif pada semua host tersebut, maka SSH_AUTH_SOCK
akan ditetapkan dan "berisi" kunci ssh Anda dari local
pada semua host.
Sekarang anggap penerusan agen dinonaktifkan hostB
tetapi diaktifkan hostC
. SSH_AUTH_SOCK
akan diaktifkan hostD
tetapi sebenarnya akan "kosong". Tentu saja agen diteruskan tetapi hanya dari hostC
ke hostD
. Rantai itu putus.
Sekarang untuk memeriksa apakah sebenarnya kunci tersedia pada hostD
Anda cukup menelepon ssh-add
. Akan keluar dengan kode 1 dalam hal apa pun, tetapi jika kunci tidak tersedia itu akan menunjukkan ini pada stderr
:
Tidak dapat membuka koneksi ke agen otentikasi Anda.
Jadi Anda dapat memeriksa SSH_AUTH_SOCK
plus pastikan ssh_add
tidak memiliki output.
ssh-find-agent
skrip untuk menemukan dan menggunakan ssh-agent yang ada, sangat berguna! Repo memiliki beberapa contoh dalam README. Anda mungkin dapat mendeteksi jika ssh-agent diaktifkan seperti itu, bersama dengan memeriksa file konfigurasi SSH, daripada melihat output SSH.