วิธีตั้งค่าชื่อเซิร์ฟเวอร์นามแฝง


15

ฉันต้องการตั้งค่าชื่อเซิร์ฟเวอร์นามแฝงบนแล็ปท็อปของฉัน (Linux) ฉันไม่ได้ต้องการใช้/etc/hosts/ไฟล์ตั้งแต่ที่อยู่ IP ของการเปลี่ยนแปลงเซิร์ฟเวอร์ระยะไกล เหตุผลที่ฉันต้องการทำเช่นนี้เป็นเพราะชื่อเซิร์ฟเวอร์ยาว 27 ตัวอักษร ฉันต้องการทำสิ่งนี้:

ssh server

แทน:

ssh server.subdomain.domain.com

ฉันมีหลายโดเมนย่อยที่ฉันใช้ ฉันจะตั้งค่านี้ได้อย่างไร

PS: ฉันไม่คิดว่านี่เป็นล่อเพราะคำตอบที่คล้ายกันอื่น ๆ ไม่ได้ระบุความจริงที่ว่าที่อยู่ IP จะเปลี่ยน


~/.ssh/configและ/etc/resolve.cnfด้านล่างเป็นคำตอบที่ยอดเยี่ยม
Jess

คำตอบ:


20

ใช้ไฟล์ ~/.ssh/config

เนื้อหาตัวอย่าง:

Host jane
HostName long.server.name
User root

จากนั้นคุณสามารถใช้ssh janeแทนssh root@long.server.name

หากที่อยู่ IP มีการเปลี่ยนแปลงและคุณไม่รู้จัก revDNS ของเซิร์ฟเวอร์นี้คุณสามารถลองใช้คำสั่งhost 1.0.0.1โดยที่ 1.0.0.1 เป็นที่อยู่ IP ซึ่งจะให้ชื่อ revDNS ปัจจุบันที่คุณจะสามารถกำหนดค่าได้

หากชื่อโฮสต์ (reverse DNS) เปลี่ยนแปลงด้วยการเปลี่ยน ip หรือเซิร์ฟเวอร์ของคุณอยู่หลัง NAT - คุณสามารถใช้ Dynamic Dns (dyndns.org) และ / หรือใช้การส่งต่อพอร์ต


7

ในการใช้ "ssh server" ที่สั้นกว่าแทน "ssh server.subdomain.domain.com" คุณเพียงแค่ใส่ "subdomain.domain.com" ต่อท้ายช่องค้นหาใน /etc/resolv.conf หากไม่มีช่องค้นหาคุณสามารถสร้างได้

ตัวอย่างเช่น - สมมติว่า /etc/resolv.conf ของคุณมีลักษณะดังนี้:

ค้นหา domain1.com domain2.com domain3.com
เนมเซิร์ฟเวอร์ 1.2.3.4
เนมเซิร์ฟเวอร์ 5.6.7.8

แก้ไขบรรทัดค้นหาเพื่อให้มีลักษณะดังนี้:

ค้นหา domain1.com domain2.com domain3.com subdomain.domain.com

คุณสามารถวาง subdomain.domain.com ที่ด้านหน้าของรายการนี้หากคุณต้องการค้นหาก่อน


1
ฉันชอบคำตอบของคุณ เนื่องจากมันจะช่วยให้การใช้ชื่อตัวเรียงลำดับของเซิร์ฟเวอร์ในหลาย ๆ แอปพลิเคชัน ถึงกระนั้นฉันคิดว่ามันอาจสร้างทราฟฟิก DNS มากขึ้นในการพยายามเชื่อมต่อแต่ละครั้ง - แต่ฉันจะไม่เดิมพัน
mnmnc

1
ระบบปฏิบัติการที่ทันสมัยหลายแห่งมีความสามารถในการแคชการตอบสนองต่อการสอบถาม DNS ในท้องถิ่น ครั้งแรกที่มีการสอบถามเรคคอร์ดคำตอบจะมาจาก dns แต่เคียวรีที่ตามมาจะตอบจากแคชจนกว่า ttl ของเรคคอร์ดจะหมดอายุ คุณสามารถดูเนื้อหาของแคชใน windows ด้วย "ipconfig / displaydns" และ "sudo killall -INFO mDNSResponder" แล้วดูเนื้อหาของ /var/log/system.log บน mac osx
123456

ดังนั้นฉันเดาว่ารายการจะถูกแคชและไม่หมดอายุ - ถ้า ณ จุดนี้ IP ของปลายทางการเปลี่ยนแปลง - คุณจะได้รับการหมดเวลาการเชื่อมต่อ ถ้าฉันไม่ได้ทำอะไร
mnmnc

1

หากนี่เป็นเพียงสำหรับ ssh คุณสามารถกำหนดชื่อ 'ทางลัด' ใน ~/.ssh/config

หลังจากนั้นssh serverจะทำงานทุกครั้งที่สมมติว่า fqdn แก้ไขเป็นที่อยู่ IP

สำหรับรายละเอียดดูที่http://kb.mediatemple.net/questions/1625/Using+an+SSH+Config+Fileหรือหน้า man ของ ssh_config


1

คุณสามารถเพิ่มชื่อแทนใน.bashrcหรือ.zshrc:

alias server1='ssh server1'

เมื่อเพิ่ม server1 ใน~/.ssh/configตัวอย่างของคุณ:

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