วิธีการใช้ SSH (คำสั่ง ssh & rsync)


44

ฉันจะ SSH กับเซิร์ฟเวอร์ระยะไกลเพื่อให้ฉันสามารถเรียกดูไฟล์และแก้ไขได้อย่างไร ฉันมีชื่อผู้ใช้และรหัสผ่านที่จะใช้

คำตอบ:


49

SSHมาเป็นค่าเริ่มต้นในทุกรุ่นของ Ubuntu ดังนั้นคุณจึงไม่ต้องติดตั้ง (+1 เพราะมีอยู่แล้ว))

ยกเว้นแน่นอนในกรณีที่คุณต้องการเซิร์ฟเวอร์ SSH สำหรับเซิร์ฟเวอร์ Ubuntu ของคุณ ในกรณีที่คุณต้องการ

sudo apt-get install openssh-server 

ซึ่งควรทำให้คอมพิวเตอร์ / เซิร์ฟเวอร์ของคุณพร้อมที่จะเป็นเซิร์ฟเวอร์ ssh

หากต้องการใช้มันค่อนข้างง่าย:

ssh USER@SITEตัวอย่างเช่นหากชื่อผู้ใช้ของฉันคือcyrexและไซต์นั้นเป็นubuntu.comคุณจะต้องทำสิ่งนี้:

ssh cyrex@ubuntu.com

ตอนนี้สมมติว่าคุณต้องการคัดลอกไฟล์ที่เรียกbubblegum.txtจากคอมพิวเตอร์ของคุณไปยังเว็บไซต์อูบุนตูของคุณและต้องการปล่อยให้ไฟล์นั้นอยู่ที่/var/wwwโฟลเดอร์ในไซต์อูบุนตู คุณสามารถทำได้ (สมมติว่าผู้ใช้ของคุณมีสิทธิ์เพียงพอในไซต์ ubuntu) โดยใช้พี่ชายของ SSH, SCP (ซึ่งมาจากค่าเริ่มต้นใน Ubuntu):

scp bubblegum.txt cyrex@ubuntu.com:/var/www 

สังเกตุ:ระหว่าง USER @ SITE และโฟลเดอร์ที่คุณต้องการคัดลอก มันเป็นสิ่งที่แยกองค์ประกอบทั้งสอง

ตอนนี้สมมติว่าคุณกำลังอัปโหลดไฟล์ขนาดใหญ่ด้วย scp และสิ่งที่เลวร้ายที่สุดก็คือโลกกำลังระเบิด คุณจะอัปโหลดไฟล์นั้นไปยังเซิร์ฟเวอร์ได้อย่างไร จากนั้นคุณก็จะได้พี่ใหญ่ของ SCP rsync (มาเป็นค่าเริ่มต้นใน Ubuntu) ในหลาย ๆ วิธี scp และ rsync ทำสิ่งเดียวกัน แต่นี่คือความแตกต่างใหญ่ระหว่างพวกเขา:

  • rsync สามารถอัปโหลดไฟล์บางส่วนที่เหลือจาก rsync หรือ scp หลังจากตัดการเชื่อมต่อหรือครอบครองโลก
  • rsync สามารถแสดงความคืบหน้าได้ดีกว่า scp
  • rsync สามารถเพิ่มประสิทธิภาพการอัปโหลดในลักษณะที่คุณสามารถจริง ๆ บันทึกวินาทีหรือนาทีในการอัปโหลด มันจะแสดงเมื่อสิ้นสุดการอัปโหลดว่าคุณได้บันทึกไว้เท่าใด

อย่างไรก็ตามในกรณีที่ SCP ไม่สามารถอัปโหลดไฟล์ทั้งหมดนี้เป็นที่ที่ rsync เข้ามาช่วยเหลือ (ขอบคุณ Marco Ceppi สำหรับเคล็ดลับโหวตความคิดเห็นของเขาถ้าคุณชอบแมว .. และ / หรือสุนัข)

สมมติว่าคุณได้ทำการอัปโหลดที่กล่าวถึงข้างต้นจาก scp และเพิ่มเป็น 60% คุณจะทำอย่างไรต่อไปใน 60% นั้นโดยไม่สูญเสียเวลาที่มีค่าสำหรับการอัปโหลด คุณจะทำสิ่งนี้:

rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www  

สิ่งนี้จะบอก rsync เพื่อแสดงความคืบหน้าในแบบที่มนุษย์อ่านได้ดีด้วย--progressธง นอกจากนี้ยังบอก rsync ให้ตรวจสอบและดำเนินการต่อจากตำแหน่งที่ไฟล์ bubblegum.txt ไปถึงด้วยการ--partialตั้งค่าสถานะ นอกจากนี้คุณยังสามารถลดความซับซ้อนของจำนวนเงินที่จะเขียนด้วยพารามิเตอร์ -P ซึ่งเหมือนกับ --progress และ --partial ดังนั้นด้านบนจะมีลักษณะดังนี้:

rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www  

คุณยังสามารถCTRL+ Cอัปโหลดและดำเนินการต่อโดยทำคำสั่งจาก rsync ด้านบน เจ๋งมากที่มีความสามารถในการทำงานต่อได้ทุกเวลา

สำหรับข้อมูลเพิ่มเติมสำหรับrsyncที่มาพร้อมกับ Ubuntu คุณสามารถพิมพ์คำสั่งเทอร์มินัลต่อไปนี้:

man rsync  
info rsync  
rsync --help

ตอนนี้เพื่อระบุพอร์ตสำหรับ SSH หากต้องการระบุว่าคุณสามารถทำได้เช่นนี้:

ssh cyrex@ubuntu.com -p PORT. ตัวอย่างเช่น: ssh cyrex@ubuntu.com -p 1234บอกให้ใช้พอร์ต 1234 สำหรับบริการ SSH สิ่งนี้จะต้องมีการกำหนดค่าในเซิร์ฟเวอร์ก่อนจึงจะสามารถใช้งานได้

หากต้องการกำหนดค่าให้เปิดในเซิร์ฟเวอร์ไฟล์ssh_configเช่นนี้: nano /etc/ssh/ssh_configและเปลี่ยนบรรทัดที่# port 22แจ้งไปยังพอร์ตอื่น อย่าลืมลบความคิดเห็นออกจากบรรทัดนั้น ควรมีลักษณะเช่นนี้: port 1234ในตัวอย่างด้านบน

ตอนนี้เพียงแค่เริ่มบริการ ssh ในเซิร์ฟเวอร์และคุณทำเสร็จแล้ว หากต้องการเริ่มบริการใหม่ให้ทำดังนี้

sudo restart ssh

หรือ

sudo /etc/init.d/ssh restart

หมายเหตุ - นอกจากนี้คุณยังสามารถใช้ SSH จากเครื่องมือ GUI เช่นfilezillaซึ่งมีตัวเลือกให้ใช้ ssh แทน ftp ssh สามารถเข้าถึงได้จากภายในเมนู Ubuntu:

ป้อนคำอธิบายรูปภาพที่นี่

ซึ่งให้การเข้าถึงตัวเลือกต่าง ๆ รวมถึงWindows share, SSH และ FTP :

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SSH คุณสามารถใช้หนึ่งในคำสั่งต่อไปนี้ในคอนโซลในกล่อง Ubuntu ของคุณ:

man ssh  
info ssh  
ssh --help

คุณหมายถึงอะไรขอโทษ
Luis Alvarado

23

หากคุณต้องการเรียกดูเซิร์ฟเวอร์ผ่าน Nautilus เช่นเดียวกับที่คุณทำกับไฟล์ในเครื่องของคุณ:

  1. Open Nautilus ("โฮมโฟลเดอร์")
  2. ไปที่ "ไฟล์" -> "เชื่อมต่อกับเซิร์ฟเวอร์"

    เชื่อมต่อกับเซิร์ฟเวอร์

  3. เลือก "SSH" ภายใต้ "ประเภทบริการ"

  4. ใส่ที่อยู่ IP หรือโดเมนภายใต้ "เซิร์ฟเวอร์"

    เลือก SSH

  5. เพิ่มชื่อผู้ใช้ของคุณและตรวจสอบ "เพิ่มที่คั่นหน้า" หากคุณต้องการบันทึกตำแหน่งลงในที่คั่นหน้าของคุณ

โฟลเดอร์ควรเปิดขึ้นมาเพื่อคุณ


บน Kubuntu หนึ่งสามารถทำเช่นเดียวกันกับKrusader
Adobe

6

คุณสามารถใช้sshfsเพื่อติดตั้งไดเรกทอรีระยะไกลกับระบบไฟล์ในเครื่องของคุณ

ดูhttps://help.ubuntu.com/community/SSHFS :

การใช้บรรทัดคำสั่ง

ตอนนี้สมมติว่าคุณมีเซิร์ฟเวอร์ SSH ที่ทำงานบนเครื่องระยะไกลเพียงแค่เรียกใช้คำสั่ง SSHFS เพื่อติดตั้งไดเรกทอรีระยะไกล ในตัวอย่างนี้ไดเรกทอรีระยะไกลคือ / โครงการบนโฮสต์ระยะไกล โลคัลเมาต์จุดคือ ~ / far_projects

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

หากต้องการยกเลิกการต่อเชื่อม

fusermount -u ~/far_projects

หากต้องการเพิ่มลงใน / etc / fstab ของคุณ

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

โปรดทราบว่าคุณต้องเปลี่ยน $ USER เป็นชื่อเข้าสู่ระบบของคุณเมื่อแก้ไข fstab แต่ไม่จำเป็นเมื่อพิมพ์คำสั่ง (เชลล์ทำเพื่อคุณในกรณีนั้น)


4

สมมติว่าเซิร์ฟเวอร์ ssh ได้รับการตั้งค่าให้เปิดเทอร์มินัลแล้วพิมพ์:

ssh username@hostname

คุณจะถูกถามให้ใส่รหัสผ่านของคุณ เพียงแค่ใส่มัน -p PORTNUMหากคุณต้องการหมายเลขพอร์ตเพิ่ม


2

หากคุณสามารถใช้ Vim, Pico หรืออื่น ๆ คุณสามารถใช้เทอร์มินัล:

ssh MYUSER@mysite.com

ป้อนรหัสผ่านของคุณและคุณจะอยู่จากที่นั่นมันก็เหมือนเทอร์มินัลปกติยกเว้นคุณไม่มี GUI

หมายเหตุคุณสามารถเพิ่มตัวเลือก '-X' และหากเซิร์ฟเวอร์ของคุณมีการกำหนดค่าเซิร์ฟเวอร์ X คุณสามารถเรียกใช้โปรแกรม GUI เพียงพิมพ์ชื่อของพวกเขาหากคุณเพิ่ม -X และมันจะเปิดหน้าต่าง GUI

ตอนนี้คุณอาจต้องการตั้งค่าการลงชื่อเข้าใช้แบบไม่มีรหัสผ่าน หากคุณยังไม่มีคีย์ให้พิมพ์ssh-keygenและเพียงแค่กด Enter เพื่อเริ่มต้นทั้งหมด ssh-copy-id MYUSER@mysite.comแล้วทำ เมื่อเสร็จแล้วเพียงพิมพ์ssh MYUSER@mysite.comและคุณไม่ต้องใส่รหัสผ่าน!

หากชื่อผู้ใช้ของคุณเหมือนกับชื่อผู้ใช้แล็ปท็อปของคุณคุณไม่จำเป็นต้องMYUSER@ใช้ ssh mysite.comคุณก็สามารถทำ คุณสามารถใช้-l MYUSERตัวเลือกแทนMYUSER@

ถ้าคุณต้องการ GUI, Nautilus สามารถทำได้ ไฟล์->เชื่อมต่อกับเซิร์ฟเวอร์->[เลือก 'SSH' จากนั้นกรอกรายละเอียดล็อกอิน] -> เชื่อมต่อ

หากคุณต้องการเพียงแค่คัดลอกไฟล์เดียวให้ใช้ scp [secure copy]
scp MYUSER@mysite.com:path/to/file.dat ./

สิ่งนี้จะคัดลอกไฟล์ "~ / path / to / file.dat" ไปยังไดเรกทอรีปัจจุบันของคุณ หมายเหตุหากคุณไม่มีเครื่องหมายสแลชหรือเครื่องหมายตัวหนอนหลังจากนั้นเครื่องหมาย:จะทำงานเหมือนคุณอยู่ในไดเรกทอรีภายในบ้าน [ ~/] หากคุณต้องการอัพโหลดscp ./local_file.dat MYUSER@mysite.com: นั่นจะใส่ไว้ใน dir บ้านของคุณ


0

ssh -X -C user@host nautilus --no-desktop ไปในโหมด gui :)


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