จัดเก็บที่อยู่อย่างถาวรเมื่อใช้ SSH


12

ฉันมีเซิร์ฟเวอร์ระยะไกลไม่กี่ตัวที่ฉันเชื่อมต่อผ่านเทอร์มินัล เซิร์ฟเวอร์ไม่มีโดเมนเพียงที่อยู่ IP ซึ่งจำได้ยากเมื่อฉันได้รับบางอย่าง

มีวิธีในการจัดเก็บค่าอย่างถาวรในเทอร์มินัลหรือไม่เพื่อให้ฉันสามารถทำสิ่งต่อไปนี้ได้

server1 = 111.222.111.222

และพิมพ์คำสั่งเช่น:

ssh root@server1

แทน:

ssh root@111.222.111.222

คำตอบ:


22

สำหรับการเชื่อมต่อ SSH คุณสามารถสร้างไฟล์กำหนดค่าผู้ใช้~/.ssh/configและทำการแมปที่นั่นได้เช่น

Host server1
  Hostname      111.222.111.222

คุณสามารถเพิ่มฟิลด์อื่น ๆ เช่นPort(สำหรับพอร์ตที่ไม่ได้มาตรฐาน) และUser(มีประโยชน์หากชื่อผู้ใช้ของคุณในระบบระยะไกลแตกต่างจากที่อยู่ในระบบท้องถิ่น) ดูman ssh_configรายละเอียดทั้งหมด


14

/etc/hostsใช่เพียงแค่พวกเขาเขียนลงในแฟ้ม มันมีไวยากรณ์ต่อไปนี้:

1.2.3.4 servername additional_servername

ที่ไหน:

  • 1.2.3.4 เป็นที่อยู่ IP
  • servername คือชื่อ
  • additional_servername เป็นชื่อตัวเลือก

หลังจากบันทึกคุณสามารถเข้าถึงเซิร์ฟเวอร์โดยใช้ชื่อ


@ ปกติถ้านี่เป็นคำตอบที่คุณไปด้วยโปรดลองตอบรับ (ทำเครื่องหมายด้านล่างปุ่มขึ้น / ลงคะแนน)
jpmc26

8

แน่นอนว่าสำหรับปัญหาเฉพาะของคุณคุณต้องการทำตามคำแนะนำ @chaos และ @steeldriver แต่ในกรณีทั่วไปเพื่อ "จัดเก็บค่าใน terminal อย่างถาวร" คุณต้องการตัวแปรเชลล์ วิธีการตั้งค่าจะขึ้นอยู่กับเชลล์ของคุณ (ฉันเดาว่าecho $SHELLจะให้ข้อมูลที่เกี่ยวข้อง)

หากโดย "ถาวร" คุณหมายถึง "ตราบใดที่ฉันไม่ออกจากเซสชันเทอร์มินัลนี้" คุณสามารถใช้export server1=111.222.111.222คำสั่งหากคุณใช้bash-based shell ( setenv server1 111.222.111.222สำหรับcsh/tcsh-based shell หากจำได้ถูกต้อง) จากนั้นคุณสามารถเข้าถึงตัวแปรของคุณโดย prefixing ด้วย:$ ssh root@$server1

หากโดย "ถาวร" คุณหมายถึง "ทุกครั้งที่ฉันเรียกใช้เทอร์มินัลใหม่" คุณจะต้องตั้งค่าตัวแปรของคุณในหนึ่งในไฟล์เชลล์ init เช่นในเปลือกหอย$HOME/.bashrcสำหรับbash- หรือ$HOME/.cshrc- สันนิษฐานว่าใช้ไวยากรณ์เดียวกับที่กล่าวถึงในวรรคก่อน โปรดทราบว่าคุณจะต้องแหล่งที่มาของไฟล์ init (เช่นsource $HOME/.bashrcหรือเปิดเปลือกใหม่สำหรับการเปลี่ยนแปลงที่จะนำมาพิจารณา

หมายเหตุ: คำตอบจากหน่วยความจำอาจต้องมีการปรับเปลี่ยนเล็กน้อย


2
โดยถาวรฉันพูดถึงแม้ว่าจะรีสตาร์ทคอมพิวเตอร์ ฉันจะดูที่นี่มันอาจจะมีประโยชน์ในบางเวลา
theusual

จากนั้นใช้วิธีที่สอง (ไฟล์เชลล์ init)
Skippy le Grand Gourou

1

ไม่ใช่คำตอบสำหรับคำถามโดยตรง (ความโกลาหลและผู้ให้บริการเหล็กได้ให้สิ่งที่ฉันคิดว่าน่าจะเป็นคำตอบที่ดีที่สุด) แต่ถ้าคุณต้องการ ssh กับผู้ใช้เพียงคนเดียวที่อยู่ในส่วนใหญ่แล้วดูการแก้ไข.bash_aliasesแฟ้มในไดเรกทอรีบ้านของคุณควรจะเป็นประโยชน์ในขณะที่คุณสามารถสร้างนามแฝงสำหรับคำสั่งมินัลทั้งหมด


0

คำตอบเฉพาะนั้นดีมาก

โดยทั่วไปแล้วหากคุณต้องการกำหนด / ติดตั้งบางสิ่งในเชลล์เพียงแค่เขียนสคริปต์เพื่อทำมันจากนั้นเรียกใช้งานด้วยsourceหรือ.เมื่อคุณต้องการให้การติดตั้งนั้นมีผล

ถ้ามันเป็นสิ่งที่คุณต้องการตลอดเวลาคุณสามารถหามันใน. profile (สำหรับล็อกอินเชลล์) หรือใน. bashrc สำหรับเชลล์ทั้งหมด (ถ้าคุณใช้ bash)

ด้วยวิธีการเช่นนี้คุณสามารถมีสคริปต์หลายตัวเพื่อตั้งค่าสภาพแวดล้อมการทำงานที่แตกต่างกันตามที่จำเป็นตราบใดที่คุณแน่ใจว่าพวกเขาไม่ได้ก้าวต่อกันหากคุณเรียกใช้สคริปต์เหล่านี้หลังจากเรียกอีกบทหนึ่งก่อน

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