จุ๊!
SSH เป็นคำสั่ง god - ฉันคิดว่ามันเป็นคำสั่งที่มีค่าที่สุดสำหรับการเรียนรู้ ตัวเลือกอาจค่อนข้างน่ากลัว แต่ดูเหมือนว่าฉันเรียนรู้ที่จะใช้ตัวเลือกบรรทัดคำสั่งใหม่สำหรับ SSH อย่างต่อเนื่องซึ่งฉันไม่เคยคิดว่าจะจำเป็น ฉันอาจใช้มันทั้งหมดในตอนนี้
ยิ่งคุณใช้มันมากเท่าไหร่คุณก็ยิ่งเรียนรู้มากขึ้นเท่านั้น คุณสามารถใช้มันเพื่อทำสิ่งที่น่าอัศจรรย์
หมายเหตุ: สิ่งเหล่านี้สามารถทำได้จากระยะไกลโดยไม่มีการตั้งค่าบนเซิร์ฟเวอร์ของคุณยกเว้นเซิร์ฟเวอร์ที่ใช้งาน ssh
เมานต์ระบบไฟล์ผ่านอินเทอร์เน็ต
ค้นหา net สำหรับ SSHFS
คำสั่งไปข้างหน้า
โปรโตคอล SVN + SSH คือการโค่นล้มจากไคลเอนต์ระยะไกลไปยังเซิร์ฟเวอร์โดยที่ไม่มี DEAMON ทำงาน คำสั่ง SVN สตาร์ทเซิร์ฟเวอร์ผ่านเชลล์ ssh และส่งข้อมูลกลับไปกลับมาผ่านไพพ์ที่มีอยู่ โปรแกรม rsync ทำสิ่งเดียวกันทำงานกับเซิร์ฟเวอร์ที่ไม่มี rsync deamon โดยเริ่มต้นด้วย SSH ง่ายในการเขียนไฟล์ bash ของคุณเองเพื่อทำกลอุบายที่คล้ายกัน
เชื่อมโยงเพื่อรับผ่านไฟร์วอลล์
ฉันใช้สิ่งนี้ตลอดเวลาเพื่อข้ามผ่านเซิร์ฟเวอร์ linux ที่บ้านไปยัง mac ของฉัน
ส่งต่อพอร์ต:
ดูเหมือนจะมีประโยชน์ในระดับปานกลางจนกว่าคุณจะรู้ว่าคุณสามารถเด้งผ่านไฟร์วอลล์ที่บ้านของคุณและกำหนดค่าเราเตอร์ของคุณที่บ้านจากการทำงานราวกับว่าคุณกำลังทำเช่นนั้นจากภายในเครือข่ายภายในบ้านของคุณ)
ส่งต่อคำขอ X:
นี่เป็นอีกหนึ่งที่น่าตื่นตาตื่นใจ เมื่อมีหรือไม่มีเซิร์ฟเวอร์ X ที่ทำงานบนระบบระยะไกลของคุณคุณสามารถเรียกใช้โปรแกรม x-windows และหน้าต่างจะปรากฏบนหน้าจอท้องถิ่นของคุณ เพียงใช้สวิตช์ -X นั่นคือทั้งหมด!
เนื่องจากคุณไม่จำเป็นต้องมีเซิร์ฟเวอร์ X ที่ทำงานบนเซิร์ฟเวอร์ระยะไกลของคุณผลกระทบของ CPU บนเซิร์ฟเวอร์ของคุณจึงมีเพียงเล็กน้อยคุณจึงสามารถมีเซิร์ฟเวอร์ TINY Linux ที่ให้บริการแอพขนาดใหญ่สำหรับพีซีเกมที่ทรงพลังที่ใช้ Windows และ cygwin / X
แน่นอนว่า VI และ EMACS ทำงานกับ SSH แต่เมื่อฉันทำงานที่บ้านบางครั้งฉันต้องการมากกว่านี้ ฉันใช้ ssh -X เพื่อเริ่มต้นสำเนา Eclipse! หากเซิร์ฟเวอร์ของคุณมีประสิทธิภาพมากกว่าแล็ปท็อปของคุณคุณมี GUI อยู่ที่นั่นบนแล็ปท็อปของคุณ แต่การคอมไพล์เสร็จแล้วบนเซิร์ฟเวอร์ของคุณดังนั้นอย่ากังวลเกี่ยวกับการโหลดระบบ
ทำงานในแบทช์ไฟล์
(หมายถึงเรียกใช้ไฟล์แบทช์ในท้องถิ่นที่ "ทำสิ่ง" ในระบบอื่น):
สองสิ่งรวมกันเพื่อทำให้สิ่งนี้ยอดเยี่ยม หนึ่งคือคุณสามารถกำจัดการแจ้งรหัสผ่านโดยใช้คีย์การเข้ารหัส (ปลอดภัยมากขึ้น) ที่สองคือคุณสามารถระบุคำสั่งใน SSH CLI ฉันใช้สิ่งนี้ในวิธีที่น่าสนใจเช่นเมื่อคอมไพล์ล้มเหลวบนเซิร์ฟเวอร์ระยะไกลฉันจะให้ SSH ลงในคอมพิวเตอร์ของฉันและเล่นไฟล์เสียง)
โปรดจำไว้ว่าคุณสามารถเปลี่ยนเส้นทางเอาต์พุตจากคำสั่งระยะไกลและใช้ภายในไฟล์แบตช์ท้องถิ่นของคุณดังนั้นคุณสามารถรวบรวมคอมไพล์ที่ทำงานอยู่บนเซิร์ฟเวอร์ของคุณ
สร้างขึ้นใน Mac
ทั้งเซิร์ฟเวอร์และไคลเอนต์สร้างไว้ในทั้ง mac และ linux ในกรณีของ Mac และ Ubuntu การเปิดใช้งานเซิร์ฟเวอร์นั้นง่ายพอ ๆ กับการค้นหาช่องทำเครื่องหมายที่ถูกต้อง
บนพีซีที่ติดตั้ง cygwin หรือ cygwin / X (cygwin / X จะช่วยให้คุณสามารถส่งต่อผลลัพธ์ x-window ของคุณจากเครื่อง Linux ของคุณไปยังพีซี Windows ของคุณ - มันติดตั้งเซิร์ฟเวอร์ X)
เคล็ดลับสำคัญ / ไฟล์กำหนดค่า
อย่าใช้พอร์ต 22 กับไฟร์วอลล์ของคุณ คุณจะได้รับความพยายามในการแฮ็คจำนวนมากมันไม่คุ้มค่า เพียงให้ไฟร์วอลล์ของคุณส่งต่อพอร์ตอื่นไปยังเซิร์ฟเวอร์ของคุณ
มีตัวเลือกการกำหนดค่ามากมายที่ช่วยให้คุณลดความซับซ้อนของคำสั่ง ssh ได้อย่างมาก นี่คือตัวอย่างของฉันที่ทำงาน:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
เมื่อฉันพิมพ์ "ssh home" (ไม่มีอะไรอื่น) มันทำหน้าที่เหมือนกับว่าฉันได้พิมพ์:
ssh -p 12345 bill@billshome.hopto.org
จากนั้นส่งต่อพอร์ตภายในเครื่องของฉันไปที่ระบบ 1025 "mac" ที่บ้าน เหตุผลนี้คือฉันมีรายการอื่นในไฟล์ของฉัน:
Host mac
hostname localhost
port=1025
ดังนั้นเมื่อฉันทำ "ssh home" และยังคงเปิดหน้าต่างฉันสามารถพิมพ์ "ssh mac" และคอมพิวเตอร์ที่ทำงานที่นี่จะพยายามเชื่อมต่อกับพอร์ต 1025 ของตัวเองซึ่งถูกส่งต่อไปยัง "mac: 22 "โดยคำสั่งอื่นดังนั้นมันจะเชื่อมต่อกับ Mac ของฉันที่บ้านผ่านไฟร์วอลล์
แก้ไข - สคริปต์สุดยอด!
ฉันขุดสคริปต์เก่าที่ฉันรัก - ต้องกลับมาและโพสต์มันสำหรับทุกคนที่นี่ที่อาจสนใจ สคริปต์นี้มีชื่อว่า "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
หากคุณมีสคริปต์นี้ในโฮมไดเร็กตอรี่ของคุณและมีโฮสต์ที่คุณสามารถเชื่อมต่อกับ (ผ่าน ssh), จากนั้นคุณสามารถพิมพ์ "./authMe hostName"
หากจำเป็นมันจะสร้างพับลิกคีย์สาธารณะ / ส่วนตัวให้คุณจากนั้นมันจะส่งไปที่เครื่องอื่นและคัดลอกคีย์สาธารณะของคุณไป (คำสั่ง ssh จะแจ้งให้คุณใส่รหัสผ่าน ... )
หลังจากนี้คำสั่ง SSH ไม่ควรถามรหัสผ่านของคุณอีกต่อไปเมื่อทำการเชื่อมต่อกับระบบรีโมตนั้นจะใช้ public / private keypair
หากคอมพิวเตอร์ระยะไกลของคุณไม่ปลอดภัยเสมอคุณควรพิจารณาตั้งค่า "รหัสผ่าน" เมื่อได้รับแจ้ง
คุณอาจต้องการกำหนดค่าเซิร์ฟเวอร์ ssh ที่ปลายสุดเพื่อไม่อนุญาตรหัสผ่านแบบข้อความ (เฉพาะคีย์) เพื่อความปลอดภัยเพิ่มเติม