ฉันอยู่ในสถานการณ์ที่ผู้ใช้หลายคนกำลังแบ่งปันบัญชีผู้ใช้เดียวกันบนเครื่องระยะไกล ฉันมีไดเรกทอรี "ส่วนตัว" ที่ฉันเขียน.zshrc
ไฟล์ของตัวเองและฉันต้องการวิธี:
- เริ่มเซสชัน ssh ในเครื่องระยะไกลด้วยคำสั่งจากไฟล์ ssh config ของฉัน (เช่น
ControlMaster auto
) - เซสชั่นนี้รัน Z shell
- มันทำงาน
.zshrc
ในไดเรกทอรี "ส่วนตัว" ของฉัน (ไม่ใช่ในไดเรกทอรีบ้านของผู้ใช้ที่ใช้ร่วมกัน)
มันคงจะดีถ้ามีนามแฝงหรือวิธีง่าย ๆ ในการเริ่มเซสชัน ssh (นั่นคือเหตุผลที่ฉันคิดเกี่ยวกับการใช้ไฟล์ config ของ OpenSSH) แต่ฉันเปิดรับแนวคิดอื่น ๆ !
กำลังใช้ไฟล์ปรับแต่งของ OpenSSH?
ฉันอ่านหน้า man 's ssh_config ของ OpenSSH ที่ฉันสามารถใช้ directive LocalCommand
เพื่อระบุคำสั่งให้รันแบบโลคัลหลังจากเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จ นี่ทำให้ฉันคิดว่าอาจมีวิธีบอกconfig
ไฟล์ว่าคำสั่งให้เรียกใช้จากระยะไกลหลังจากเชื่อมต่อกับเซิร์ฟเวอร์ แต่ดูเหมือนจะไม่มีอะไรเกิดขึ้น
.zshrc
ในไดเรกทอรีเฉพาะ (เช่นไดเรกทอรีบ้าน "ส่วนบุคคล") ฉันพยายามssh -t host_name 'zsh & source /path/to/my_zshrc'
แต่มันไม่ทำงาน (ฉันได้รับFPATH variable not defined
และฉันคิดว่ามันเป็นเพราะzsh
เสร็จสิ้นก่อนที่มันจะทำงานmy_zshrc
ให้คนเดียวสิ่งนี้ไม่ได้ให้เปลือกหอย Z)
ssh mycommand
ไม่ได้ และถ้าคุณต้องการเรียกใช้คำสั่งการตั้งค่าบางคำสั่งก่อนคำสั่ง ssh ทำไมไม่กำหนดค่าฝั่งเซิร์ฟเวอร์