ตั้งค่าไดเรกทอรีการทำงานปัจจุบันเป็น ssh


9

ฉันพยายาม ssh จากเครื่องหนึ่งไปอีกเครื่องหนึ่งภายในสคริปต์ Python (สคริปต์ Nautilus) มันทำงานได้ดังต่อไปนี้:

ssh -t user@server "cd /home/some/dir ; csh"

อย่างไรก็ตามฉันไม่ชอบความคิดในการเข้ารหัสฮาร์ดเชลล์ชนิด

มีวิธีการตั้งค่าcwdภายในคำสั่ง ssh โดยไม่ต้อง hardcode ประเภทเปลือกหรือไม่


ในทางเทคนิคแล้วมันเป็นpythonสคริปต์ ;-)
Johnsyweb

คำตอบ:



8

คุณสามารถทำเช่นนี้ ...

ssh -t user@server "cd /home/some/dir ; bash"

bashเปลือกที่คุณต้องการอยู่ที่ไหน


ขอบคุณมันใช้งานได้ มีวิธีตรวจจับอัตโนมัติหรือ ommit shell ดังนั้นมันจะเป็นค่าเริ่มต้นหรือไม่ ฉันไม่ชอบแนวคิดที่จะฮาร์ดโค้ดมัน
umpirsky

1
@umpiresky: ฉันไม่มีกล่อง Ubuntu ที่จะทำการทดสอบนี้ แต่ใน * BSD ฉันสามารถทำได้: ssh -t user@server "cd /home/some/dir ; login user"(โดยที่ผู้ใช้คือชื่อผู้ใช้ที่คุณให้ไว้กับ ssh) หากโฮสต์ระยะไกลของคุณมีการตั้งค่าเช่นเดียวกับ localhost คุณสามารถใช้ $ {SHELL} แทน YMMV
Johnsyweb

@Johnsyweb ไม่ผู้ใช้เข้าสู่ระบบไม่ทำงานสำหรับฉัน ฉันกำลังเชื่อมต่อจาก Ubuntu กับ FreeBSD แต่มันก็ดีที่จะทำงานกับเซิร์ฟเวอร์ใด ๆ นั่นเป็นเหตุผลที่ฉันไม่ชอบความคิดที่จะ hardcode ประเภทเปลือก (csh ในกรณีของฉัน)
umpirsky

login userเหมาะกับฉันใน FreeBSD
Johnsyweb

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