ฉันจะ SSH กับเซิร์ฟเวอร์ระยะไกลเพื่อให้ฉันสามารถเรียกดูไฟล์และแก้ไขได้อย่างไร ฉันมีชื่อผู้ใช้และรหัสผ่านที่จะใช้
ฉันจะ SSH กับเซิร์ฟเวอร์ระยะไกลเพื่อให้ฉันสามารถเรียกดูไฟล์และแก้ไขได้อย่างไร ฉันมีชื่อผู้ใช้และรหัสผ่านที่จะใช้
คำตอบ:
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 ทำสิ่งเดียวกัน แต่นี่คือความแตกต่างใหญ่ระหว่างพวกเขา:
อย่างไรก็ตามในกรณีที่ 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
หากคุณต้องการเรียกดูเซิร์ฟเวอร์ผ่าน Nautilus เช่นเดียวกับที่คุณทำกับไฟล์ในเครื่องของคุณ:
ไปที่ "ไฟล์" -> "เชื่อมต่อกับเซิร์ฟเวอร์"
เลือก "SSH" ภายใต้ "ประเภทบริการ"
ใส่ที่อยู่ IP หรือโดเมนภายใต้ "เซิร์ฟเวอร์"
เพิ่มชื่อผู้ใช้ของคุณและตรวจสอบ "เพิ่มที่คั่นหน้า" หากคุณต้องการบันทึกตำแหน่งลงในที่คั่นหน้าของคุณ
โฟลเดอร์ควรเปิดขึ้นมาเพื่อคุณ
คุณสามารถใช้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 แต่ไม่จำเป็นเมื่อพิมพ์คำสั่ง (เชลล์ทำเพื่อคุณในกรณีนั้น)
สมมติว่าเซิร์ฟเวอร์ ssh ได้รับการตั้งค่าให้เปิดเทอร์มินัลแล้วพิมพ์:
ssh username@hostname
คุณจะถูกถามให้ใส่รหัสผ่านของคุณ เพียงแค่ใส่มัน -p PORTNUM
หากคุณต้องการหมายเลขพอร์ตเพิ่ม
หากคุณสามารถใช้ 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 บ้านของคุณ
ssh -X -C user@host nautilus --no-desktop
ไปในโหมด gui :)