OpenSSH - แม็พนามแฝงใน ~ / .ssh / config กับที่อยู่ IP ในบรรทัดคำสั่ง


9

เป็นไปได้หรือไม่ที่จะสอบถาม ~ / .ssh / config ในบรรทัดคำสั่ง? สมมติว่าฉันต้องการดึงข้อมูลที่อยู่ IP ที่ชื่อแทนนั้นชี้ไปในโปรแกรมอื่นเป็นไปได้หรือไม่

คำตอบ:


2

หากฉันเข้าใจว่าคุณเพียงต้องการให้ที่อยู่ IP ถูกส่งคืนเช่น. 192.168.1.1 นี่เป็นวิธีหนึ่งในการสืบค้นไฟล์จากบรรทัดคำสั่ง (เปราะบางอย่างไม่น่าเชื่อ) หากคุณมีสิทธิ์ที่เหมาะสมในการอ่านและ.ssh/configเป็นของคุณอย่างสม่ำเสมอ จัดรูปแบบ:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


ฉันโพสต์สิ่งนี้เพียงเพราะฉันต้องการที่จะเข้าใจวิธีการใช้awkสิ่งนี้ แต่ความรู้ของฉันค่อนข้าง จำกัด


1

ไม่แน่ใจทั้งหมดในสิ่งที่คุณถาม ...

สมมติว่าคุณมีนามแฝง SSH สำหรับ 'mainserver' ssh mainserverเพื่อให้คุณสามารถทำ หากคุณต้องการให้มันใช้งานได้ping mainserverด้วยคุณต้องใส่นามแฝงเข้าไปใน/etc/hosts:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

จากนั้นคุณสามารถทำได้ping mainserverและมันจะ ping 192.168.0.20


0

นี่เป็นวิธีที่มีประสิทธิภาพมากขึ้นในการดึงข้อมูลที่HostNameอยู่Hostใน.ssh/configไฟล์

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}

-1

ไฟล์ที่คุณกล่าวถึงเป็นไฟล์ข้อความประกอบด้วยชื่อโฮสต์และที่อยู่ IP ที่เป็นไปได้เพื่อระบุเครื่องที่คุณเชื่อมต่อ ชื่อโฮสต์สามารถแก้ไขเป็นที่อยู่ IP ได้โดยใช้host(1)คำสั่ง รูปแบบค่อนข้างง่ายดังนั้นจึงไม่ยากเกินไปที่จะค้นหาว่ามีอะไรอยู่ในนั้น โปรดทราบว่าสามารถใช้อักขระตัวแทนในไฟล์ (สถานะของฉัน*.fedoraproject.org)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.