ไฟล์ SSH SCP Local ไปยัง Remote ใน Terminal Mac Os X


90

ฉันกำลังพยายามคัดลอกไฟล์ในเครื่อง 'magento.tar.gz' จากเครื่องในพื้นที่ของฉันไปยังเซิร์ฟเวอร์ระยะไกลโดยใช้ SSH ผ่าน VPN กำลังเชื่อมต่อกับ IP ภายในของ Virtual Machine ซึ่งฉันเคยใช้เป็น xx.xxxx ที่นี่

ฉันมีสิทธิ์เข้าถึง 'sudo' แบบเต็มในบัญชี SSH ดังนั้นจึงไม่ควรมีปัญหาในการคัดลอก ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

ฉันได้ลองสิ่งต่อไปนี้แล้ว (ไฟล์ magento.tar.gz อยู่ใน root dir ในเครื่องแล้ว)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

สิ่งนี้ขอให้ฉันพิมพ์รหัสผ่านท้องถิ่นของฉัน ผลตอบแทนในภายหลังcp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

กลับมาเหมือนเดิม

ฉันจำเป็นต้องรวม SSH ไว้ที่นั่นทุกที่หรือไม่?

ฉันต้องเชื่อมต่อผ่าน SSH ไปยังไซต์ก่อนหรือไม่?

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

คำตอบ:


204

ในตอนแรกคุณต้องเพิ่ม:หลังที่อยู่ IP เพื่อระบุเส้นทางต่อไปนี้:

scp magento.tar.gz user@xx.x.x.xx:/var/www

ฉันไม่คิดว่าคุณจำเป็นต้องใช้sudoไฟล์scp. ในกรณีนี้จะไม่มีผลกับเครื่องระยะไกลเฉพาะคำสั่งภายในเครื่อง

จากนั้นหากuser@ xx.xxxx ของคุณไม่มีสิทธิ์ในการเขียน/var/wwwคุณต้องทำ 2 ครั้ง:

คัดลอกไปยังเซิร์ฟเวอร์ระยะไกลในโฮมโฟลเดอร์ของคุณ ( :หมายถึงโฟลเดอร์โฮมระยะไกลของคุณใช้:subfolder/ถ้าจำเป็นหรือ:/home/user/สำหรับเส้นทางแบบเต็ม):

scp magento.tar.gz user@xx.x.x.xx:

จากนั้น SSH และย้ายไฟล์:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

ขอบคุณ. ฉันลองใช้กับโคลอน แต่ได้รับอนุญาตถูกปฏิเสธ - ฉันได้รับแจ้งว่าฉันมีสิทธิ์เข้าถึง sudo เต็มรูปแบบดังนั้นการอนุญาตจึงไม่ควรเป็นปัญหา
James

1
ขอบคุณ !!! ฉันต้อง SSH รีโมตและ pwd เพื่อค้นหาไดเร็กทอรีเริ่มต้นที่ฉันถูกนำไปซึ่งเป็น / home / username - scp magento.tar.gz user@xx.xxxx: / home / username / ทำเคล็ดลับ!
James

19

เพียงเพื่อชี้แจงคำตอบที่ได้รับจาก JScoobyCed คำสั่ง scp ไม่สามารถคัดลอกไฟล์ไปยังไดเร็กทอรีที่ต้องได้รับอนุญาตจากผู้ดูแลระบบ อย่างไรก็ตามคุณสามารถใช้คำสั่ง scp เพื่อคัดลอกไปยังไดเร็กทอรีที่เป็นของผู้ใช้ระยะไกล

ดังนั้นในการคัดลอกไปยังไดเร็กทอรีที่ต้องการสิทธิ์ root ก่อนอื่นคุณต้องคัดลอกไฟล์นั้นไปยังไดเร็กทอรีที่เป็นของผู้ใช้ระยะไกลโดยใช้คำสั่ง scp ถัดไปคุณต้องเข้าสู่ระบบบัญชีระยะไกลโดยใช้ ssh เมื่อเข้าสู่ระบบแล้วคุณสามารถย้ายไฟล์ไปยังไดเร็กทอรีที่คุณเลือกโดยใช้คำสั่ง sudo mv กล่าวโดยย่อคำสั่งที่จะใช้มีดังนี้:

ใช้ scp คัดลอกไฟล์ไปยังไดเร็กทอรีในบัญชีของผู้ใช้ระยะไกลตัวอย่างเช่นไดเร็กทอรี Documents:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

จากนั้นลงชื่อเข้าใช้บัญชีผู้ใช้ระยะไกลโดยใช้ ssh จากนั้นย้ายไฟล์ไปยังไดเร็กทอรีที่ จำกัด โดยใช้ sudo:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

0

ดูว่าไม่มีชื่อไฟล์ของคุณ:อยู่ในนั้นด้วย ฉันพบว่าฉันต้องmv blah-07-08-17-02:69.txt no_colons.txtแล้วscp no-colons.txt server:จากนั้นก็ไม่ลืมที่จะmvกลับมาอยู่บนเซิร์ฟเวอร์ ในกรณีนี้เป็นปัญหา


1
นั่นไม่ใช่ปัญหาถ้าคุณเพิ่ม./ก่อนชื่อท้องถิ่นเช่นscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.