คำสั่งระยะไกลในไฟล์ ssh config


12

ฉันต้องการตั้งค่า ssh_config ดังนั้นหลังจากพิมพ์ssh my_hostnameฉันลงเอยในโฟลเดอร์เฉพาะ cd /folder/another_one/much_much_deeper/เช่นเดียวกับผมจะพิมพ์

ฉันจะบรรลุสิ่งนั้นได้อย่างไร

แก้ไข มันถูกทำเครื่องหมายว่าซ้ำกับ "How to ssh to dir ... " แต่ไม่ใช่คำถามของฉัน

ฉันรู้ว่าฉันสามารถรันคำสั่งใด ๆ ได้โดยปรับให้เป็นsshคำสั่ง คำถามของฉันเกี่ยวกับ/ssh_configไฟล์ไม่ใช่คำสั่ง


ฉันได้ชี้แจงคำถามของฉัน
Kazz

ไม่มีอะไรเกี่ยวกับสิ่งนั้นman ssh_configค่ะ LocalCommand ที่ใกล้เคียงที่สุด แต่ไม่สามารถใช้สำหรับคำสั่งแบบโต้ตอบได้
lgeorget

1
คุณช่วยอธิบาย (ในคำถามของคุณ) ได้ไหมว่าทำไมคุณถึงรู้สึกว่าต้องมีการเปลี่ยนแปลงssh_config? อาจมีสถานที่ที่ดีกว่าในการกำหนดค่าไดเรกทอรีเริ่มต้นและมันจะเป็นประโยชน์ในการทำความเข้าใจว่าทำไมมีข้อ จำกัด นี้ในการแก้ปัญหาที่เป็นไปได้
roaima

1
ความจริง "ไม่สามารถทำได้ในssh_config" ไม่ได้ทำให้สิ่งนี้ซ้ำกับ "ทำใน Bash" "คุณทำไม่ได้" เป็นคำตอบที่ถูกต้องสมบูรณ์
Franklin Yu

1
@terdon อย่างไรก็ตามความจริง "มันเป็นไปไม่ได้" อาจเปลี่ยนแปลงได้ตลอดเวลา ใช่มันเป็นไปได้แล้ว ตอนนี้ฉัน (รวมถึงใครในอนาคตที่จะเห็นสิ่งนี้) ต้องการคำตอบใหม่และเราติดอยู่ที่นี่ หากนี่ไม่ได้เปิดใหม่ฉันคิดว่าเส้นทางที่ต้องการคือการสร้างคำถามใหม่ (และตอบคำถาม)?
Franklin Yu

คำตอบ:


19

ไม่มีทางที่จะทำอย่างนั้นจนกระทั่งOpenSSH 7.6 จากคู่มือ :

RemoteCommand

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

ดังนั้นตอนนี้คุณสามารถมี

RemoteCommand cd /tmp && bash

มันได้รับการแนะนำในการกระทำนี้


5
เพิ่มRequestTTY forceถ้าคำสั่งระยะไกลต้องการ TTY ตัวอย่างเช่น:tmux new -As my-session
Aaron Blenkush

นี่คือsshตัวเลือกนักฆ่าขอบคุณ!
nhed

นี้จะทำให้มันเป็นไปไม่ได้ที่จะเรียกใช้คำสั่งอื่น ๆ เช่นจะล้มเหลวด้วยssh my_hostname ls Cannot execute command-line and remote command.มันทำให้เครื่องมืออื่น ๆ ที่ใช้ ssh เช่น git และ rsync ก็ล้มเหลวเช่นกัน
remram

2

ฉันต้องการตั้งค่า ssh_config หลังจากนั้นเพียงพิมพ์ ssh my_hostname

มันเป็นไปไม่ได้. ไม่มีตัวเลือกเพื่อให้บรรลุสิ่งนั้นssh_configค่ะ สิ่งที่ใกล้เคียงที่สุดคือตั้งค่า bash alias หรือฟังก์ชัน bash เช่น

myssh() {
    ssh -t $1 "cd /dir/; bash"
}

1

ฉันตอบตั๋วฉบับอื่นก่อนที่โซโมซีนจะชี้ให้เห็นว่านี่เป็นต้นฉบับ

หากใช้ mac คำแนะนำของฉันคือใช้ iTerm2 และสร้างโปรไฟล์ ใส่ssh my_hostnameในบรรทัดคำสั่งแล้วเพิ่มคำสั่งcd /folder/another_one/much_much_deeper/ในฟิลด์ส่งข้อความเมื่อเริ่มต้น เมื่อคุณเชื่อมต่อกับเซสชันมันจะ ssh กับชื่อโฮสต์และ cd ของคุณไปยังไดเรกทอรีในกรณีของคุณหรือรันคำสั่ง

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