ฉันต้องการที่จะสามารถตั้งค่าคำสั่งให้ทำงานในการเข้าสู่ระบบ ssh ไปยังเซิร์ฟเวอร์โดยไม่จำเป็นต้องพิมพ์ โดยทั่วไปฉันกำลังมองหาไฟล์ ssh config เทียบเท่า:
ssh host command
ดังนั้นสิ่งที่ฉันต้องพิมพ์คือ:
ssh host
และคำสั่งจะถูกเรียกใช้
ฉันต้องการที่จะสามารถตั้งค่าคำสั่งให้ทำงานในการเข้าสู่ระบบ ssh ไปยังเซิร์ฟเวอร์โดยไม่จำเป็นต้องพิมพ์ โดยทั่วไปฉันกำลังมองหาไฟล์ ssh config เทียบเท่า:
ssh host command
ดังนั้นสิ่งที่ฉันต้องพิมพ์คือ:
ssh host
และคำสั่งจะถูกเรียกใช้
คำตอบ:
นอกจากนี้ยังเป็นไปได้ที่จะแทรกคำสั่งในไฟล์คีย์ที่ได้รับอนุญาตของคุณ ( ~/.ssh/authorized_keys
) สิ่งนี้ช่วยให้คุณสามารถรันคำสั่งที่กำหนดเองสำหรับแต่ละคีย์ในไฟล์ ฉันใช้สิ่งนี้เพื่อส่งต่อการเชื่อมต่อเชลล์ผ่านไฟร์วอลล์ของฉัน ผลลัพธ์คือฉันสามารถ ssh หนึ่งโฮสต์และมันจะเชื่อมต่อเซสชันกับโฮสต์ภายในเครือข่ายโดยอัตโนมัติ authorized_keys
รายการลักษณะเช่นนี้:
command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...
โดยเฉพาะอย่างยิ่งการเปลี่ยนเส้นทางสำหรับอินสแตนซ์ของ gitolite ของฉัน การทำเช่นนี้ช่วยให้สามารถเข้าถึงจากภายนอกได้ง่ายโดยไม่เปิดเผยโฮสต์ gitolite โดยตรงกับการเข้าถึงภายนอก ตรวจสอบหน้า man สำหรับข้อมูลเพิ่มเติม ( http://linux.die.net/man/8/sshd )
/.ssh/rc
ตั้งอยู่บนเครื่องไคลเอ็นต์หรือเซิร์ฟเวอร์หรือไม่ ดูเหมือนว่าจากเอกสารของเซิร์ฟเวอร์ใช่ไหม
rc
ไฟล์ดูเหมือนจะล้มเหลวในการเรียกใช้สิ่งต่าง ๆ เช่นscreen
ได้รับข้อผิดพลาด "ต้องเชื่อมต่อกับขั้ว"
คุณสามารถตั้งค่านามแฝงทุบตี
ในไฟล์. bashrc ของคุณให้ใส่:
alias ssl='ssh some_host run_command'
จากนั้นคุณไม่ต้องพิมพ์ชื่อโฮสต์
หรือถ้าคุณต้องการทำสิ่งนี้กับโฮสต์หลาย ๆ ตัว (และนามแฝงหลายตัวไม่ทำงาน) ให้ใช้สคริปต์ขนาดเล็ก:
kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$
คุณเย็นแก้ปัญหานี้ในของคุณ.ssh/config file
สำหรับโฮสต์ที่คุณต้องการรันคำสั่งเพิ่ม
RequestTTY yes
RemoteCommand <some command>
<some command>
คำสั่งของคุณอยู่ที่ไหน สิ่งนี้ยังใช้งานได้กับหน้าจอหรือ tmux