วิธีการ ssh ไปยังเส้นทางระยะไกล?


10

ฉันมีโฟลเดอร์ใน ~ / apps / และอีกโฟลเดอร์หนึ่งใน root / apps /

ฉันต้องการที่จะให้พวกเขา

ssh user@abc.com:~/apps/

และ

ssh user@abc.com:/apps/ 

ฉันได้รับข้อผิดพลาดต่อไปนี้:

ไม่สามารถแก้ไขชื่อโฮสต์

ฉันทำอะไรผิด?


คุณพบทางออกหรือไม่
dnl

@dnl ฉันไม่ได้พบออกยังฉันต้องการใช้คอมไพล์ที่จะผลักดัน repo ท้องถิ่นของฉันไปที่ไซต์ระยะไกล แต่ฉันต้อง SSH เพื่อเส้นทาง
MKO

กว่าที่ฉันแนะนำคุณควรถามคำถามง่าย ๆ ว่าจะทำอย่างไร :) คุณอาจพบคำตอบได้ที่นี่: book.git-scm.com/3_distributed_workflows.html
dnl

คำตอบ:


23
ssh user@server -t "cd /some/directory; bash --login"
  • -t ติดตามการเชื่อมต่อหากมีการโต้ตอบกับผู้ใช้)
  • คำสั่ง "" อยู่ในเครื่องหมายคำพูด
  • bash --loginจะต้องติดตามการเชื่อมต่อหลังจากcd(ดู-t)

ดูความคิดเห็นภายใต้คำถามสำหรับข้อมูลเพิ่มเติม
dnl

มันใช้งานได้ 100% สำหรับฉัน ;)
1635700

4

ฉันคิดว่าคุณกำลังผสมSCPและSSH

สำหรับ ssh คุณไม่จำเป็นต้องระบุเส้นทางปลายทาง คุณเพียงเข้าสู่ระบบในฐานะ user@host.com และคุณเข้าสู่โฟลเดอร์บ้านของผู้ใช้


4

SSH คาดหวังไวยากรณ์ต่อไปนี้:

ssh [other_options] [user@]hostname [command]

ดังนั้นเมื่อคุณพิมพ์:

ssh user@abc.com:~/apps/

SSH เข้าใจว่าคุณต้องการเชื่อมต่อกับโฮสต์ชื่อ "abc.com:~/apps/" กับผู้ใช้ "ผู้ใช้" เนื่องจากโฮสต์นั้นไม่มีอยู่คุณจึงได้รับข้อผิดพลาดที่คุณยกมา

คุณจะต้องแบ่งคำสั่งของคุณเป็นสองแบบนี้:

ssh user@abc.com
(type the password, and wait for ssh to log you in)
cd ~/apps/

2

แก้ไข: คุณสามารถ ssh เป็น user@abc.com จากนั้นไปที่โฟลเดอร์ที่ต้องการโดยใช้ cd folderName

Ozair Kafray อธิบายได้ดีขึ้น


0

ด้านล่างให้ฉันเข้าสู่ระบบ & ไปที่ไดเรกทอรีในหนึ่งบรรทัดบน Ubuntu:

ssh user@abc.com -t "cd /path/to/your/directory/; `echo $SHELL --login`"

หรือเพียงแค่

ssh user@abc.com -t "cd /path/to/your/directory/; bash --login"

ขอให้โชคดี

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