การตรวจสอบสภาพแวดล้อมSSH_AUTH_SOCK
นั้นดีสำหรับการเชื่อมต่อ ssh โดยตรง
หากคุณใช้พร็อกซี ( proxy_command
) คุณอาจมีการเชื่อมโยงที่มีลักษณะดังนี้:
local
-> hostA
-> hostB
-> hostC
->hostD
หากการส่งต่อเอเจนต์ใช้งานได้บนโฮสต์เหล่านั้นทั้งหมดSSH_AUTH_SOCK
จะถูกตั้งค่าและ "ประกอบด้วย" คีย์ ssh ของคุณจากlocal
บนโฮสต์ทั้งหมด
ตอนนี้ส่งต่อตัวแทนสมมติว่ามีการปิดใช้งานบนแต่เปิดใช้งานบนhostB
จะถูกตั้งค่าบนแต่จริง ๆ แล้วจะเป็น "ว่าง" แน่นอนตัวแทนจะถูกส่งต่อ แต่จากการ โซ่ขาดhostC
SSH_AUTH_SOCK
hostD
hostC
hostD
ตอนนี้เพื่อตรวจสอบว่าจริง ๆ แล้วมีคีย์พร้อมใช้งานที่hostD
คุณสามารถโทรssh-add
ได้ มันจะออกด้วยรหัส 1 ในกรณีใด ๆ แต่ถ้าคีย์ไม่สามารถใช้งานได้มันจะแสดงสิ่งนี้ในstderr
:
ไม่สามารถเปิดการเชื่อมต่อกับตัวแทนการตรวจสอบความถูกต้องของคุณ
ดังนั้นคุณสามารถตรวจสอบเครื่องหมายSSH_AUTH_SOCK
บวกทำให้แน่ใจว่าssh_add
ไม่มีเอาต์พุต
ssh-find-agent
สคริปต์สำหรับการค้นหาและใช้ตัวแทน SSH ที่มีอยู่สะดวกมาก! repo มีตัวอย่างบางส่วนใน README คุณอาจสามารถตรวจพบว่ามีการเปิดใช้งาน ssh-agent เช่นนั้นพร้อมกับการตรวจสอบไฟล์กำหนดค่า SSH แทนที่จะดูที่เอาต์พุต SSH