ฉันมีโฮสต์ FreeBSD 9 สองตัวและฉันต้องการบำรุงรักษาช่องสัญญาณเพื่อเข้าถึงไฟร์วอลล์โฮสต์ R จากพอร์ตสูงบนโฮสต์คลาวด์ C
ssh -y -i tunnel_id_rsa -o ConnectTimeout=60 -o ServerAliveInterval=20
-o ServerAliveCountMax=5 -oBatchMode=yes -o ExitOnForwardFailure=yes
-nNR :11432:127.0.0.1:443 tunnel@c.mydomain.com
ใช้งานได้เกือบตลอดเวลา แต่ในกรณีที่พอร์ตไม่ดีและไม่สามารถฟังบน C ฉันไม่เห็นข้อมูลที่ป้อนกลับไปยังไคลเอนต์ที่โทรบน R การอ่านเอกสารและอ่านคำถามอื่นดูเหมือนว่า ExitOnForwardFailure ควรจะ ทำเช่นนี้. แต่มันไม่ใช่ ... ฉันเห็นข้อผิดพลาดในบันทึกของ c: error: bind: Address already in use
และจากนั้นใน R ฉันเพิ่งมีการเชื่อมต่อไร้สาระ ssh ไร้หัวกับ C ที่จะไม่ตายและไม่ทำอะไรที่ดี สิ่งที่ฉันต้องการจะทำก็แค่กระบวนการ SSH นั้นจะตายเมื่อการผูกล้มเหลวดังนั้นฉันจึงสามารถลองใหม่ได้
มีอย่างอื่นที่ป้องกันไม่ให้ข้อความโปรโตคอลกลับไปที่ R หรือไม่? มีบางอย่างที่ทำให้ ExitOnForwardFailure ไม่ทำงานหรือไม่ ฉันไม่เห็นอะไรเลยใน stderr บน R เกี่ยวกับข้อผิดพลาดซึ่งดูเหมือนว่าน่าสงสัยตามรายงานและคำถามอื่น ๆ
(ฉันได้ลองวางตัวเลือก -y และ -n เช่นเดียวกับการใช้รหัสผ่านแบบโต้ตอบปกติโดยไม่มีคีย์ ... ผลลัพธ์เดียวกัน)