จะใช้ SSH ได้อย่างไร? รวมถึงการติดตั้งและการกำหนดค่า (Linux, Windows, macOS, Android, iOS) การเชื่อมต่อระยะไกลผ่านคอนโซลไปยังเซิร์ฟเวอร์ Ubuntu การตั้งค่าเทอร์มินัล เซิร์ฟเวอร์ SSH

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

คีย์ SSH เป็นคู่ - คีย์ส่วนตัวและคีย์สาธารณะ ไคลเอนต์จะต้องเก็บไว้เป็นส่วนตัว ส่วนที่เปิดจะถูกส่งไปยังเซิร์ฟเวอร์และวางไว้ในไฟล์authorized_keys

การสร้างคีย์ SSH ใน Linux โดยใช้ CentOS เป็นตัวอย่าง

ต้องติดตั้งแพ็คเกจ ssh (openssh) บนฝั่งไคลเอ็นต์ บนเซิร์ฟเวอร์ FirstVDS ที่มีเทมเพลตเริ่มต้น ซอฟต์แวร์ที่จำเป็นได้รับการติดตั้งแล้ว

Yum -y ติดตั้ง openssh-server openssh-clients

บนคอมพิวเตอร์ไคลเอนต์ที่บรรทัดคำสั่ง ให้รันคำสั่งการสร้างคีย์:

Ssh-keygen

ป้อนเส้นทางของไฟล์ที่จะวางคีย์ ไดเร็กทอรีดีฟอลต์อยู่ในวงเล็บ ในตัวอย่าง /home_dir/.ssh/id_rsa หากคุณต้องการออกจากตำแหน่งเริ่มต้น ให้กด Enter

วลีรหัสผ่านใช้เพื่อจำกัดการเข้าถึงคีย์ส่วนตัว รหัสผ่านจะทำให้บุคคลที่สามใช้รหัสได้ยากหากรหัสสูญหาย หากคุณไม่ต้องการใช้วลีลับ ให้กด Enter โดยไม่ต้องกรอกบรรทัด

เมื่อคุณสร้างคู่คีย์สำเร็จแล้ว คุณจะเห็นการแจ้งเตือน:


กุญแจสาธารณะถูกเก็บไว้ในไฟล์ /home_directory/.ssh/id_rsa.pub กุญแจส่วนตัวจะถูกเก็บไว้ใน /home_directory/.ssh/id_rsa


คัดลอกพับลิกคีย์ไปยังเซิร์ฟเวอร์ในไฟล์ /home_directory/.ssh/authorized_key ในหนึ่งบรรทัด:

แมว ~/.ssh/id_rsa.pub | ssh root@server-ip-address %22cat >> ~/.ssh/authorized_keys%22

หรือเปิดไฟล์นี้บนเซิร์ฟเวอร์ด้วยโปรแกรมแก้ไข vi และแทรกบรรทัดคีย์สาธารณะหลัง ssh-rsa

อีกวิธีหนึ่งในการคัดลอกคีย์ไปยัง allowance_keys คือการใช้คำสั่ง echo ซึ่งวางบรรทัดไว้ที่ท้ายไฟล์

เอคโค่ สตริงคีย์สาธารณะ ssh-rsa >>/root/.ssh/authorized_keys

การสร้างคีย์ SSH บน Windows ด้วย PuTTYgen

หากคุณใช้ Windows OS คุณสามารถเชื่อมต่อผ่าน SSH ไปยังเซิร์ฟเวอร์ (Linux) ของคุณผ่าน PuTTY หรือ OpenSSH ในกรณีนี้ การสร้างคีย์จะดำเนินการโดยใช้โปรแกรมเหล่านี้ด้วย ในตัวอย่างนี้ เราใช้โปรแกรม PuTTY

เปิดแอปพลิเคชั่น PuTTYgen ซึ่งติดตั้งด้วย PuTTY

เลือกประเภทคีย์ SSH2-RSA แล้วคลิกสร้าง


ในระหว่างกระบวนการสร้างคีย์ ให้สุ่มลากเมาส์ของคุณผ่านหน้าจอแอปพลิเคชันหลาย ๆ ครั้งเพื่อสร้างค่าสุ่มที่ใช้สำหรับคีย์


หลังจากการสร้างคีย์เสร็จสมบูรณ์ คีย์สาธารณะจะแสดงบนหน้าจอ และคีย์ส่วนตัวจะถูกจัดเก็บไว้ในหน่วยความจำของแอปพลิเคชัน หากต้องการบันทึกคีย์เหล่านี้ ให้คลิกบันทึกคีย์สาธารณะและบันทึกคีย์ส่วนตัว ระบุตำแหน่งของไฟล์คีย์


เมื่อบันทึกคีย์ส่วนตัว หากไม่ได้กรอกข้อมูลในช่องข้อความรหัสผ่านของคีย์ คุณจะได้รับข้อความแจ้งว่า "คุณต้องการบันทึกคีย์โดยไม่มีข้อความรหัสผ่านหรือไม่"

ตอนนี้จำเป็นต้องคัดลอกรหัสสาธารณะไปยังเซิร์ฟเวอร์ในไฟล์authorized_keys ใช้ WinSCP หรือไคลเอนต์อื่นเพื่อทำงานกับไฟล์บนเซิร์ฟเวอร์ Linux ระยะไกล คุณสามารถคัดลอกไฟล์ทั้งหมดด้วยรหัสสาธารณะไปยังเซิร์ฟเวอร์ เพื่อให้สำเนาของไฟล์นั้นถูกเก็บไว้ในโฟลเดอร์ .ssh


เปิดไฟล์authorized_keysผ่าน WinSCP และไฟล์ที่คุณบันทึกคีย์สาธารณะไว้ในเครื่องคอมพิวเตอร์ของคุณด้วยโปรแกรมแก้ไขข้อความ คัดลอกค่าคีย์ บันทึก และปิดไฟล์ใน WinSCP


เมื่อคุณเรียกใช้ PuTTY ให้ระบุเส้นทางไปยังคีย์ส่วนตัวบนเครื่องคอมพิวเตอร์ของคุณ ในการดำเนินการนี้ในแท็บการเชื่อมต่อ → การรับรองความถูกต้อง ให้เลือกเส้นทางที่ต้องการ


ตอนนี้คุณสามารถปิดการใช้งานการตรวจสอบรหัสผ่านบนเซิร์ฟเวอร์และใช้เฉพาะคีย์ SSH เท่านั้น

ปิดการใช้งานการตรวจสอบรหัสผ่าน

เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH โดยใช้รหัสผ่านของคุณและเปิดไฟล์ sshd_config เพื่อแก้ไข

Vi /etc/ssh/sshd_config.vi

ตรวจสอบให้แน่ใจว่าระบุเส้นทางที่ถูกต้องไปยังคีย์สาธารณะ SSH แล้วตั้งค่าพารามิเตอร์ PasswordAuthentication เป็น no


เริ่มบริการ sshd ใหม่

บริการ sshd เริ่มต้นใหม่

เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH โดยไม่ต้องใช้รหัสผ่าน ตัวอย่างเช่น เรียกใช้ PuTTY ตรวจสอบว่าแท็บการเชื่อมต่อ -> การรับรองความถูกต้องมีเส้นทางไปยังคีย์ส่วนตัวและเปิดการเชื่อมต่อ


หากการตรวจสอบสิทธิ์โดยใช้คีย์ SSH สำเร็จ คุณจะได้รับสิทธิ์เข้าถึงบรรทัดคำสั่งของเซิร์ฟเวอร์และข้อความเช่น การตรวจสอบสิทธิ์ด้วยคีย์สาธารณะ "rsa-key-20170510" โดยที่ rsa-key-20170510 เป็นชื่อของคีย์ส่วนตัวที่ใช้ ซึ่งระบุไว้ โดยคุณในไฟล์authorized_keys

สวัสดี! ฉันสนใจคำถาม: วิธีเชื่อมต่อผ่าน SSH กับคอมพิวเตอร์ที่บ้านของคุณผ่านทางอินเทอร์เน็ต ฉันมีเซิร์ฟเวอร์ FreeSSHd ติดตั้งอยู่ที่บ้าน ตามที่ฉันเข้าใจฉันต้องเปิดพอร์ต 22 บน IP ภายนอกหรือไม่

ใช่แล้ว ความจำเป็นมักเกิดขึ้น ฉันพูดถึงหลายสิ่งหลายอย่างในบทความนั้น แต่เราจะพูดถึง SSH โดยเฉพาะที่นี่ เนื่องจาก Alex กรุณาให้โอกาสนี้แก่เรา นอกจากนี้ ฉันเองก็สนใจ SSH อย่างไม่น่าเชื่อ และนี่ก็มีบน Windows ด้วย... อืม

SSH คืออะไร และเหตุใดจึงจำเป็น

ประเด็นก็คือ SSH คือ ปลอดภัย เอลล์ โปรโตคอลสำหรับการเข้าถึงเชลล์ควบคุมอย่างปลอดภัย ดังนั้นจึงให้การเข้าถึงบรรทัดคำสั่งโดยเฉพาะเนื่องจากเชลล์ถูกแปลเป็น เปลือกและที่นี่ในความหมาย เชลล์ควบคุมข้อความ- แต่โดยทั่วไปแล้ว โปรโตคอลนี้มีความโดดเด่นตรงที่อนุญาตให้มีการรับส่งข้อมูลอื่น ๆ ผ่านภายในได้ และอยู่ในรูปแบบที่เข้ารหัส ดังนั้นโปรโตคอลการเชื่อมต่อระบบไฟล์ที่ปลอดภัยจึงเรียกว่า SFTP และทำงานบน SSH แต่สามารถส่งสัญญาณการเชื่อมต่ออื่นๆ ได้อย่างแน่นอน ไม่ว่าจะเป็น HTTP หรือแม้แต่ RDP โดยพื้นฐานแล้วมันกลายเป็น “VPN ที่อยู่บนเข่า”

ที่นี่ Alex ทำงานไปแล้วครึ่งหนึ่ง เขาติดตั้งและเปิดใช้งาน FreeSSHd บนคอมพิวเตอร์ที่บ้านของเขา สิ่งนี้ทำให้คุณสามารถเชื่อมต่อกับ Windows ผ่าน SSH ในกรณีนี้ “อนุญาต” มีความหมายรุนแรงมาก เนื่องจากโซลูชันนี้ใช้ได้กับ Windows ในทางใดทางหนึ่ง ประการแรก ไม่มีอินเทอร์เฟซข้อความที่เหมาะสม - บรรทัดคำสั่งสำหรับการควบคุม

อย่างน้อยก็แบบปกติ - cmd - ไม่อนุญาตให้คุณทำอะไรได้มากมายกับเครื่องระยะไกล นอกจากนี้ยังมี Powershell ซึ่งเป็นโซลูชันที่ทันสมัยและทรงพลังยิ่งขึ้น Freesshd อนุญาตให้คุณเปลี่ยนคอนโซลเป็น PowerShell แต่ฉันไม่สามารถเชื่อมต่อได้ ฉันเชื่อมต่อกับ CMD - แต่ใช้งานไม่ได้โดยสิ้นเชิง:

ประการที่สอง ในกรณีของ FreeSSHd ฉันไม่สามารถเชื่อมต่อกับคอมพิวเตอร์ Windows ได้แม้จะผ่านเครือข่ายท้องถิ่น ไม่ต้องพูดถึงการเชื่อมต่อผ่านอินเทอร์เน็ต หรือค่อนข้างเป็นไปได้ที่จะเชื่อมต่อ แต่บริการค้างและขัดข้อง คุณจะไม่สามารถจัดการโฮสต์ Windows ด้วยวิธีนี้ได้

ดังนั้น ฉันคิดว่า Alex ต้องการเซิร์ฟเวอร์ ssh บน Windows เพื่อเชื่อมต่อกับระบบไฟล์หรือใช้เป็น VPN โดยใช้พร็อกซีบางอย่างผ่าน SSH แม้ว่าฉันจะสงสัยว่า FreeSSHd จะอนุญาตสิ่งนี้ก็ตาม เพราะประการที่สาม: มันไม่บันทึกการตั้งค่าด้วยซ้ำ เมื่อเริ่มบริการใหม่ ทุกอย่างจะสูญหายไป โดยทั่วไปแล้ว ฉันหวังเป็นอย่างยิ่งว่าอเล็กซ์จะบอกเราในความคิดเห็นว่าทำไมเขาถึงต้องการสิ่งนี้

คุณสามารถรัน SSH บน Windows ได้อย่างไร?

มีวิธีแก้ปัญหาที่ใช้งานได้มากกว่านี้ - Powershelserver แม้ว่าจะมีข้อบกพร่อง แต่อย่างน้อยก็ไม่ผิดพลาด ดังนั้นฉันอยากจะแนะนำให้ใช้มันเพื่อเชื่อมต่อผ่าน SSH ไปยังเซิร์ฟเวอร์ Windows

ประการแรก มันทำงานได้อย่างเสถียรโดยไม่มีข้อขัดข้อง และด้วยสิ่งนี้ คุณสามารถควบคุมหน้าต่างผ่าน PowerShell ได้อย่างแท้จริง

การตั้งค่าทั้งหมดจะถูกบันทึกตามปกติ ฟังก์ชั่นเดียวกันนี้มีให้ใช้งานเช่นเดียวกับใน FreeSSHd และยิ่งกว่านั้น - คุณสามารถใช้ SCP - นี่คือการคัดลอกไฟล์ผ่าน SSH

แต่ที่ชิคที่สุดคือคอนโซล! มันได้ผลนะสุภาพบุรุษ!

ฉันเชื่อมต่อได้อย่างง่ายดาย โดยไม่ต้องยุ่งยากกับการเพิ่มผู้ใช้ (ต้องทำใน freesshd) และคำสั่งง่ายๆ ในการดูตารางเส้นทางนั้นทำงานได้อย่างสมบูรณ์แบบและให้ข้อมูลที่จำเป็น Frisssh “ล้มลง” สำหรับฉันอย่างแม่นยำเมื่อฉันพยายามดู netstat -rn

ที่นี่คุณจะเห็นได้ว่าไม่มีการแสดงอักขระภาษารัสเซีย ตั้งค่ากับเราได้ง่ายมาก ฉันแค่ตั้งค่าการเข้ารหัสที่ต้องการบน PowerShellserver รีสตาร์ท เชื่อมต่อใหม่...

การตั้งค่าการเข้ารหัสใน Powershellserver

ตอนนี้เรามี SSH เต็มรูปแบบและสามารถจัดการ Windows ผ่านทางคอนโซลได้อย่างสมบูรณ์

Microsoft จะสร้างโซลูชันของตนเองสำหรับ SSH

อย่างไรก็ตาม Microsoft ได้ประกาศย้อนกลับไปในช่วงฤดูร้อนว่ากำลังจะพัฒนา พื้นเมืองรองรับ SSH สำหรับ Powershell ใน Windows เวอร์ชันใหม่ มีประกาศข่าวในHabréและใน pcweek (และอื่นๆ) ดังนั้นเราจึงได้แต่ตั้งตารอเหตุการณ์สำคัญนี้เท่านั้น เพราะมันจะเป็นความก้าวหน้าในการทำงานอย่างแท้จริง เครือข่ายที่ต่างกัน.

ฉันไม่ได้ตรวจสอบฟังก์ชันอื่น ๆ - sftp และ scp แต่ด้วยเหตุผลบางอย่างฉันมั่นใจว่าฟังก์ชันเหล่านี้จะทำงานได้ดีเช่นกัน

จะเปิดพอร์ต SSH จากภายนอกได้อย่างไร?

ดังนั้นเราจึงมาถึงสิ่งที่เป็นความลับซึ่งบทความนี้เริ่มต้นตั้งแต่แรก ฉันจะตอบคำถามของผู้อ่าน

การส่งต่อพอร์ตบนเราเตอร์หรือโมเด็ม

หากต้องการเชื่อมต่อกับคอมพิวเตอร์จากภายนอก คุณต้องทำ NAT จริงๆ หรือในบางกรณี . วิธีการทำเช่นนี้ขึ้นอยู่กับอุปกรณ์ที่ใช้เป็นเกตเวย์ นี่อาจเป็นโมเด็ม ADSL หรือ. ในกรณีส่วนใหญ่ คำแนะนำโดยละเอียดสำหรับอุปกรณ์ของคุณสามารถพบได้ง่ายโดยใช้ข้อความค้นหา เช่น “การส่งต่อพอร์ต อุปกรณ์_รุ่น" หรือ "การส่งต่อพอร์ต อุปกรณ์_รุ่น»

นี่คือลักษณะที่ปรากฏบนเราเตอร์ที่บ้าน Zyxel Keenetic Lite ของฉัน:

และนี่คือลักษณะที่ปรากฏบนโมเด็ม ADSL พร้อมด้วยฟังก์ชันการทำงานของเราเตอร์ Linksys WAG200G ที่มีอยู่:

นอกจากนี้ ผู้ให้บริการบางรายอาจไม่สามารถทำได้ในทางเทคนิค เนื่องจากผู้ให้บริการบางรายไม่ได้ให้ "สีขาว" ไว้

การส่งต่อพอร์ตไปยังเซิร์ฟเวอร์ระยะไกลโดยใช้อุโมงค์ SSH

ในกรณีนี้ วิธีเดียวที่สามารถเชื่อมต่อผ่าน SSH ได้คือจากเครื่อง Windows ในระบบ (เครื่องเดียวกับที่เราต้องการเชื่อมต่อผ่าน SSH) ไปยังเซิร์ฟเวอร์ระยะไกล ในกรณีนี้ คุณต้องมีสิทธิ์เข้าถึง SSH ไปยังเซิร์ฟเวอร์บางตัวบนอินเทอร์เน็ต

การตั้งค่าอุโมงค์ SSH "ย้อนกลับ"

การส่งต่อดังกล่าวสามารถทำได้ง่าย ๆ โดยใช้ Putty ไคลเอนต์ SSH ธรรมดา (ยังมี) จากนั้นคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลนี้ผ่านพอร์ตที่ส่งต่อ

โดยพื้นฐานแล้วมันคือการวนซ้ำที่นี่ เราเปิดเซสชัน SSH จาก Windows ไปยังเซิร์ฟเวอร์ระยะไกล และภายในการเชื่อมต่อนี้ เราจะเชื่อมต่อพอร์ต SSH ของ Windows Powershellserver (หรือ FreeSSHd) ไปยังพอร์ตภายในเครื่อง 3322 ของเซิร์ฟเวอร์ระยะไกล และในเซสชันเดียวกันนี้ ตอนนี้เราเชื่อมต่อกลับไปยัง Windows บน Powershell ผ่านพอร์ตเดียวกันนี้ 3322... ฉันหวังว่าคุณจะไม่สับสน แต่... นี่คือเวทย์มนตร์นะเพื่อน! :) อุโมงค์ SSH เป็นโลกที่พิเศษ ด้วยความช่วยเหลือของพวกเขา คุณสามารถทำสิ่งที่น่าทึ่งได้ เปิดประตูที่เจ้าหน้าที่รักษาความปลอดภัยทุกคนจะร้องไห้อย่างขมขื่นหากพวกเขารู้เรื่องนี้โดยฉับพลัน... แต่เอาล่ะ.

หากคุณต้องการแชร์พอร์ต Windows SSH กับโลก ก็เพียงพอที่จะระบุ ip_server:3322 เป็นปลายทางในการตั้งค่าช่องสัญญาณย้อนกลับ คุณจะสามารถเชื่อมต่อกับ Windows ผ่าน SSH ได้จากทุกที่ที่มีการเข้าถึงเซิร์ฟเวอร์นี้

จะตรวจสอบได้อย่างไรว่าพอร์ตถูกส่งต่ออย่างถูกต้อง?

ง่ายมาก คุณต้องตรวจสอบว่าเปิดอยู่หรือไม่ ในกรณีของ SSH พอร์ตที่เปิดอยู่จะตอบกลับพร้อมข้อความเกี่ยวกับเวอร์ชัน วิธีที่ง่ายที่สุดในการตรวจสอบพอร์ตคือยูทิลิตี้เทลเน็ต

เพียงพิมพ์บรรทัดคำสั่งโดยคั่นด้วยช่องว่าง:

พอร์ต telnet domain_or_IP

หากพอร์ตพร้อมใช้งาน คุณจะเห็นสิ่งนี้:

การตอบสนอง SSH หากมีพอร์ต

หากพอร์ตไม่พร้อมใช้งานด้วยเหตุผลบางประการ คุณจะเห็น "การเชื่อมต่อถูกปฏิเสธ" หรือ "หมดเวลาการเชื่อมต่อ" ในกรณีแรก การดำเนินการจะเกิดขึ้นทันที และหมายความว่าพอร์ตถูกปิดโดยไฟร์วอลล์

ในกรณีที่สองจะดูเหมือน "หยุดทำงาน" และอาจใช้เวลานานหลายนาที - ไคลเอ็นต์ telnet จะพยายามสร้างการเชื่อมต่อ นี่อาจหมายถึงการบล็อกโดยไฟร์วอลล์ แต่เป็นประเภทอื่น เพียงว่าโฮสต์ที่ระบุไม่พร้อมใช้งานหรือพอร์ตบนโฮสต์นั้นถูกปิด

หากคุณสามารถเชื่อมต่อผ่าน telnet ได้ ให้กดคีย์ผสม Ctrl+] แล้วป้อน ล้มเลิก,จากนั้นป้อน มิฉะนั้น คุณจะไม่สามารถขัดจังหวะเซสชันได้ และจะต้องเปิดหน้าต่างคอนโซลใหม่หากคุณยังต้องการมัน

บทความนี้มีไว้เพื่อการตั้งค่าการเข้าถึงระยะไกลไปยังเซิร์ฟเวอร์ Ubuntu หลักการเชื่อมต่อนั้นง่ายมาก: บนฝั่งไคลเอ็นต์เราใช้โปรแกรมสำหรับการเข้าถึงระยะไกล (เช่น Putty) บนฝั่งเซิร์ฟเวอร์ที่เราติดตั้งและกำหนดค่าแพ็คเกจ OpenSSH เมื่อทำการเชื่อมต่อ ไคลเอนต์จะเข้าสู่ขั้นตอนการอนุญาตกับเซิร์ฟเวอร์และสร้างการเชื่อมต่อที่เข้ารหัสระหว่างกัน หลักการทำงานของโปรโตคอล SSH ได้กล่าวถึงรายละเอียดเพิ่มเติมในบทความเรื่อง

แผนภาพเครือข่ายแสดงอยู่ด้านล่าง การเชื่อมต่อระยะไกลไปยังเซิร์ฟเวอร์จะทำจากคอมพิวเตอร์ไคลเอนต์

เราติดตั้งเซิร์ฟเวอร์ Ubuntu บนฮาร์ดไดรฟ์ที่สะอาด หลังการติดตั้ง คุณจะต้องกำหนดค่าอินเทอร์เฟซเครือข่ายของเซิร์ฟเวอร์เพื่อเข้าถึงเครือข่าย กล่าวคือตั้งค่าที่อยู่ IP, เน็ตเวิร์กมาสก์, เกตเวย์เริ่มต้น หากอินเทอร์เฟซของคุณได้รับการกำหนดค่าแล้ว คุณสามารถข้ามขั้นตอนนี้ได้ การตั้งค่าอินเทอร์เฟซเครือข่ายระบุไว้ในไฟล์ /etc/เครือข่าย/อินเทอร์เฟซ- ในการแก้ไขเราจะใช้โปรแกรมแก้ไขข้อความ นาโน.

เราเข้าสู่โหมดแก้ไขของไฟล์อินเทอร์เฟซ เราสนใจทุกสิ่งด้านล่าง # อินเทอร์เฟซเครือข่ายหลัก ในขณะนี้ เซิร์ฟเวอร์ได้รับที่อยู่ IP ผ่าน DHCP ซึ่งไม่ถูกต้องทั้งหมด เซิร์ฟเวอร์จะต้องมี IP แบบคงที่เพื่อให้โหนดทั้งหมดบนเครือข่ายทราบที่อยู่ของตนอย่างแน่ชัด มากำหนดการตั้งค่าเครือข่ายด้วยตนเอง

เซิร์ฟเวอร์ของฉันอยู่บนเครือข่ายย่อยภายในเครื่อง 192.168.1.0/24 เซิร์ฟเวอร์ถูกกำหนด IP 192.168.1.2, มาสก์ 255.255.255.0, เกตเวย์เริ่มต้น 192.168.1.1, ที่อยู่เซิร์ฟเวอร์ DNS 192.168.0.1

หากต้องการบันทึกไฟล์ ให้กด Ctrl + X -> Y -> Enter หากต้องการใช้การตั้งค่า คุณต้องรีสตาร์ทกระบวนการเครือข่าย คุณยังสามารถรีบูทเซิร์ฟเวอร์ด้วยคำสั่ง sudo restart

ตรวจสอบ (คำสั่ง ifconfig -a) - ใช้การตั้งค่า

ทุกอย่างพร้อมสำหรับ OpesnSS ซึ่งสามารถติดตั้งได้จากเทอร์มินัลโดยใช้คำสั่ง

$ sudo apt-get ติดตั้ง openssh-client

$ sudo apt-get ติดตั้งเซิร์ฟเวอร์ openssh

คุณสามารถควบคุมการเริ่ม หยุด และรีสตาร์ทเซิร์ฟเวอร์ SSH ได้โดยใช้คำสั่ง

$sudo บริการสช หยุด | เริ่มต้น | รีสตาร์ท

จริงๆ แล้ว คุณมีสิทธิ์เข้าถึง SSH ไปยังเซิร์ฟเวอร์อยู่แล้ว แต่เพื่อการปรับแต่งเพิ่มเติม มีไฟล์การกำหนดค่าอยู่ที่ /etc/ssh/sshd_config การเข้าถึงการกำหนดค่าจะดำเนินการจากรูทเท่านั้น

ในฝั่งไคลเอ็นต์ ให้ดาวน์โหลดโปรแกรมใดๆ เพื่อเชื่อมต่อผ่าน SSH ฉันขอแนะนำ Putty ในโปรแกรม สิ่งที่คุณต้องทำคือกรอกที่อยู่ IP ของเซิร์ฟเวอร์และเชื่อมต่อเข้ากับมัน เมื่อเชื่อมต่อ ให้กรอกชื่อผู้ใช้และรหัสผ่าน

___________________________

SSH - (Secure Shell) เป็นโปรโตคอลสำหรับการควบคุมระยะไกลของคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Linux Ssh ส่วนใหญ่จะใช้เพื่อจัดการเซิร์ฟเวอร์จากระยะไกลผ่านเทอร์มินัล หากคุณเป็นผู้ดูแลระบบของเซิร์ฟเวอร์หลายเครื่องหรือแม้แต่เว็บมาสเตอร์ขั้นสูง คุณอาจต้องเผชิญกับความจำเป็นในการทำงานกับคอมพิวเตอร์เครื่องใดเครื่องหนึ่งผ่าน ssh บ่อยครั้ง สำหรับสิ่งนี้ ใน Linux เซิร์ฟเวอร์ ssh จะถูกใช้บนเครื่องที่ไคลเอ็นต์ต้องการเชื่อมต่อและบนเครื่องที่ไคลเอ็นต์เชื่อมต่อ

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

แต่มาเริ่มด้วยพื้นฐานกันดีกว่า

ไวยากรณ์คำสั่งมีดังนี้:

$ssh [ตัวเลือก] ชื่อผู้ใช้@เซิร์ฟเวอร์ [คำสั่ง]

สิ่งสำคัญคือต้องทราบว่า ssh สามารถทำงานได้โดยใช้โปรโตคอลสองเวอร์ชัน เวอร์ชัน 1 และ 2 เป็นที่ชัดเจนว่าเวอร์ชัน 2 ดีกว่าและรองรับการเข้ารหัสและการรับรองความถูกต้องประเภทต่างๆ มากขึ้น เราจะไม่พูดถึงความแตกต่างของโปรโตคอลในบทความนี้อีกต่อไป และฉันจะถือว่าคุณกำลังใช้เวอร์ชัน 2

ตัวเลือกคำสั่ง SSH

ตอนนี้เรามาดูตัวเลือกพื้นฐานที่สุดของคำสั่ง ssh:

  • - ใส่ ssh เข้าสู่โหมดพื้นหลัง
  • - อนุญาตให้เครื่องระยะไกลเข้าถึงพอร์ตในเครื่อง
  • - ชื่อผู้ใช้ในระบบ
  • n- เปลี่ยนเส้นทางเอาต์พุตมาตรฐานไปที่ /dev/null
  • พี- พอร์ต ssh บนเครื่องระยะไกล
  • ถาม- ไม่แสดงข้อความแสดงข้อผิดพลาด
  • โวลต์- โหมดแก้ไขข้อบกพร่อง
  • x- ปิดการใช้งานการเปลี่ยนเส้นทาง X11
  • เอ็กซ์- เปิดใช้งานการเปลี่ยนเส้นทาง X11
  • - เปิดใช้งานการบีบอัด

ตัวเลือกเหล่านี้ไม่ใช่ตัวเลือกทั้งหมดของยูทิลิตี้ ส่วนที่เหลืออยู่นอกเหนือขอบเขตของบทความนี้ การตั้งค่าหลายอย่างสำหรับการดำเนินการ ssh สามารถเปลี่ยนแปลงได้ผ่านไฟล์กำหนดค่า ~/.ssh/config แต่เราจะไม่พิจารณารายละเอียดนี้ที่นี่เช่นกัน

การตั้งค่าเซิร์ฟเวอร์ SSH

การตั้งค่าเซิร์ฟเวอร์ SSH อยู่ใน /etc/ssh/sshd_config เราจะไม่แตะต้องพวกเขามากนักเช่นกัน พิจารณาเฉพาะสิ่งที่น่าสนใจที่สุดเท่านั้น ขั้นแรกให้เปิดไฟล์ /etc/ssh/sshd.conf

พอร์ต ssh

ตามค่าเริ่มต้น ssh ทำงานบนพอร์ต 22 แต่พฤติกรรมนี้ไม่ปลอดภัย เนื่องจากผู้โจมตีรู้จักพอร์ตนี้และสามารถพยายามโจมตีแบบ Bruteforce เพื่อบังคับรหัสผ่านแบบเดรัจฉานได้ พอร์ตถูกระบุโดยบรรทัด:

เปลี่ยนค่าพอร์ตให้เป็นค่าที่ต้องการ

โปรโตคอล SSH

ตามค่าเริ่มต้น เซิร์ฟเวอร์ ssh สามารถทำงานบนโปรโตคอลสองเวอร์ชันเพื่อความเข้ากันได้ หากต้องการใช้เฉพาะโปรโตคอลเวอร์ชัน 2 ให้ยกเลิกการใส่เครื่องหมายบรรทัด:

และนำมาในรูปแบบนี้:

การเข้าถึงเส้นทาง

ตามค่าเริ่มต้น อนุญาตให้เข้าถึงรูทผ่าน ssh ได้ แต่พฤติกรรมนี้ไม่ปลอดภัยมาก ดังนั้นอย่าใส่เครื่องหมายข้อคิดเห็นในบรรทัด:

หมายเลข PermitRootLogin

มีเพียงผู้ใช้บางรายเท่านั้นที่สามารถเข้าถึง SSH

เราสามารถอนุญาตการเข้าถึง ssh สำหรับผู้ใช้หรือกลุ่มที่ระบุเท่านั้น เมื่อต้องการทำเช่นนี้ ให้เพิ่มบรรทัด:

อนุญาตให้ผู้ใช้ ผู้ใช้ 1, ผู้ใช้ 2, ผู้ใช้ 3
อนุญาตกลุ่ม Group1, Group2, Group3

ในที่นี้ User1 และ Group1 คือผู้ใช้และกลุ่มที่ควรได้รับอนุญาตในการเข้าถึง

ใช้งานแอปพลิเคชัน X11

ไม่ใช่ทุกคนที่รู้ แต่คุณสามารถใช้ ssh เพื่อเปิดแอปพลิเคชัน X11 ที่มีคุณสมบัติครบถ้วนได้ เราจะพูดถึงเรื่องนี้ด้านล่าง แต่เพื่อให้ทุกอย่างทำงานได้ คุณต้องเปิดใช้งานคุณสมบัตินี้บนฝั่งเซิร์ฟเวอร์ เพิ่มบรรทัดต่อไปนี้:

X11 กำลังส่งต่อใช่

เราได้กล่าวถึงตัวเลือกพื้นฐานแล้ว ก่อนที่จะดำเนินการต่อ อย่าลืมรีบูตเซิร์ฟเวอร์ ssh เพื่อบันทึกการเปลี่ยนแปลง:

บริการ sshd รีสตาร์ท

การใช้ SSH

วัตถุประสงค์หลักของบทความนี้คือเพื่อแสดงวิธีใช้ ssh ที่น่าสนใจและมีประโยชน์ที่คุณอาจไม่เคยรู้จัก เรามาดูส่วนที่ดีที่สุดกันดีกว่า - ความสามารถของ ssh

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

หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ให้ใช้คำสั่งต่อไปนี้:

เรียกใช้คำสั่ง

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

ผู้ใช้ ssh@host ls

ดำเนินการคำสั่ง ls บนเซิร์ฟเวอร์ระยะไกลและส่งคืนเอาต์พุตไปยังเทอร์มินัลปัจจุบัน

ดำเนินการสคริปต์ท้องถิ่น

มาเรียกใช้ล่าม bash บนเซิร์ฟเวอร์ระยะไกลและส่งสคริปต์ในเครื่องของเราไปให้โดยใช้การเปลี่ยนเส้นทางอินพุต Bash:

ผู้ใช้ ssh@host "bash -s"< script.sh

สำรองข้อมูลไปยังเซิร์ฟเวอร์ระยะไกลและการกู้คืน

เราสามารถบันทึกข้อมูลสำรองบนดิสก์ได้โดยตรงบนเซิร์ฟเวอร์ระยะไกลโดยใช้ ssh มาเปลี่ยนเส้นทางเอาต์พุตของ dd โดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง | จากนั้นบันทึกลงในไฟล์ด้านนั้น:

sudo dd if=/dev/sda | ผู้ใช้ ssh@host "dd of=sda.img"

ตอนนี้หากต้องการคืนค่าสถานะดิสก์จากสำเนาที่คุณทำ ให้รัน:

ผู้ใช้ ssh@host "dd if=sda.img" | dd ของ=/dev/sda

ที่นี่และด้านบน /dev/sda คือชื่อไฟล์ของฮาร์ดไดรฟ์ของคุณ

การรับรองความถูกต้องโดยไม่ต้องใช้รหัสผ่าน

การใช้รหัสผ่าน ssh เพื่อเข้าสู่ระบบเซิร์ฟเวอร์ไม่เพียงแต่ไม่สะดวก แต่ยังไม่ปลอดภัยด้วย เนื่องจากสามารถเดารหัสผ่านนี้ได้ตลอดเวลา วิธีการตรวจสอบความถูกต้องที่ปลอดภัยที่สุดและใช้กันทั่วไปคือการใช้คู่คีย์ RSA รหัสส่วนตัวจะถูกจัดเก็บไว้ในคอมพิวเตอร์ และรหัสสาธารณะจะถูกใช้บนเซิร์ฟเวอร์เพื่อตรวจสอบสิทธิ์ผู้ใช้

การกำหนดค่าลักษณะการทำงานนี้ทำได้ง่ายมาก ขั้นแรกให้สร้างคีย์ด้วยคำสั่ง:

ssh-keygen -t rsa

เมื่อสร้างคีย์ คุณจะต้องตอบคำถามหลายข้อ ปล่อยตำแหน่งไว้เป็นค่าเริ่มต้น หากคุณต้องการเชื่อมต่อโดยไม่ใช้รหัสผ่าน ให้เว้นช่อง Passphare ว่างไว้ด้วย

จากนั้นเราจะส่งรหัสไปยังเซิร์ฟเวอร์:

ssh-copy-id -i ~/.ssh/id_rsa.pub ผู้ใช้ @ โฮสต์

รับรหัสผ่านจากไฟล์ในเครื่อง

ฉันขอเตือนคุณว่าการจัดเก็บรหัสผ่านในไฟล์ข้อความธรรมดานั้นไม่ปลอดภัย แต่ถ้าคุณต้องการก็เป็นไปได้ หากต้องการทำสิ่งนี้ ให้ใช้ตัวดำเนินการเปลี่ยนเส้นทางอินพุตของ Bash:

ผู้ใช้ ssh@host< local_file.txt

เปลี่ยนคำทักทาย SSH

เมื่อเข้าสู่ระบบผ่าน ssh อาจแสดงคำทักทายซึ่งเปลี่ยนได้ง่ายมาก ไฟล์ /etc/issue มีหน้าที่รับผิดชอบในเรื่องนี้ เพียงเปิดไฟล์นี้แล้วป้อนข้อความที่ต้องการ:

ดูความพยายามเข้าสู่ระบบ SSH ที่ล้มเหลว

คุณต้องการดูว่ามีความพยายามในการเข้าถึงเซิร์ฟเวอร์ของคุณผ่าน ssh หรือไม่ และจากที่อยู่ IP ใด พูดง่ายๆ ก็คือ คำขอทั้งหมดจะถูกบันทึกลงในไฟล์ /var/log/secure จากนั้นมากรองเฉพาะข้อมูลที่จำเป็นด้วยคำสั่ง:

cat /var/log/secure | grep "รหัสผ่านล้มเหลวสำหรับ"

การถ่ายโอนไฟล์ผ่าน SSH

นอกจากการรันคำสั่งแล้ว คุณยังสามารถคัดลอกไฟล์ผ่าน ssh ได้อีกด้วย ยูทิลิตี้ scp ใช้สำหรับสิ่งนี้ เพียงระบุไฟล์ที่คุณต้องการถ่ายโอน เซิร์ฟเวอร์ระยะไกล และโฟลเดอร์บนเซิร์ฟเวอร์ ที่นี่:

$scp /ที่อยู่/ท้องถิ่น/ไฟล์ user@host:ที่อยู่/โฟลเดอร์

ตัวอย่างเช่น:

scp ~/test.txt user@host:documents

นอกจากยูทิลิตี้ scp แล้ว การถ่ายโอนไฟล์ ssh ยังสามารถทำได้ด้วยวิธีที่ชาญฉลาดยิ่งขึ้น มาอ่านไฟล์และใช้ cat เพื่อส่งมัน จากนั้นบันทึกสตรีมเป็นไฟล์:

cat localfile | ผู้ใช้ ssh@host "cat > remotefile"

ผู้ใช้ ssh@host "cat > remotefile"< localfile

tar czf - /home/user/file | ผู้ใช้ ssh@host tar -xvzf -C /home/remoteuser/

การคัดลอกไฟล์ ssh ด้วยวิธีนี้จะทำให้คุณสามารถส่งทั้งโฟลเดอร์ได้ในคราวเดียว

การรันแอพพลิเคชั่นกราฟิกบน ssh

หากคุณต้องการเรียกใช้แอปพลิเคชันกราฟิกนี้บนเครื่องระยะไกล คุณไม่จำเป็นต้องใช้ VNC ในการดำเนินการนี้ คุณสามารถใช้ความสามารถของ ssh ได้ โปรแกรมจะถูกดำเนินการบนฝั่งเซิร์ฟเวอร์ และคุณจะเห็นเพียงหน้าต่างเดียวเพื่อให้คุณสามารถทำทุกสิ่งที่คุณต้องการได้ นอกจากนี้ข้อมูลทั้งหมดยังได้รับการเข้ารหัสอีกด้วย เพื่อให้ฟีเจอร์นี้ใช้งานได้ คุณต้องเปิดใช้งานบนฝั่งเซิร์ฟเวอร์

จากนั้นเราก็ดำเนินการคำสั่งเพื่อเปิดแอปพลิเคชันกราฟิกบนเซิร์ฟเวอร์ระยะไกลดังนี้:

ssh -XC user@remotehost "eclipse"

ดังที่คุณเห็นแล้ว ตัวเลือก X อนุญาตให้มีการเปลี่ยนเส้นทาง X11 บนฝั่งไคลเอ็นต์ และตัวเลือก C อนุญาตการบีบอัดข้อมูล

สิ้นสุดเซสชัน ssh

หากคุณใช้ ssh กับอินเทอร์เน็ตที่ไม่เสถียร เมื่อการเชื่อมต่อขาดหายเป็นครั้งคราว คุณอาจรู้สึกเบื่อหน่ายกับการปิดเทอร์มินัล เพราะไม่เช่นนั้น เมื่อมองแวบแรก คุณจะไม่มีทางยุติเซสชันได้ เมื่อการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเสียหาย คุณจะไม่สามารถป้อนคำสั่งใดๆ ได้ และคีย์ผสม Ctrl+C, Ctrl+Z, Ctrl+D จะไม่ทำงาน และจะไม่ทำงานเนื่องจากไคลเอ็นต์พยายามส่งคำสั่งเหล่านี้ไปยังเซิร์ฟเวอร์ แต่มีวิธีแก้ไขคือ - ลำดับการหลีกหนี หากต้องการเปิดใช้งานการสนับสนุน ให้เพิ่มบรรทัด:

ไปที่ไฟล์ /etc/ssh/ssh_config

ในบทความนี้ เราจะบอกวิธีติดตั้ง SSH บน Linux, Windows และ Mac วิธีกำหนดค่าและวิธีใช้งาน! ทุกรายละเอียด! มันจะน่าสนใจ!

SSH เป็นโปรโตคอลยอดนิยมสำหรับการควบคุมระยะไกล (การดูแลระบบ) ระบบปฏิบัติการที่ใช้เคอร์เนล Linux และ Unix สำหรับผู้เริ่มต้นใช้งาน Linux ยังไม่ชัดเจนว่าจะติดตั้งโปรโตคอลนี้ กำหนดค่า และใช้งานอย่างไร ดังนั้นเราจึงตัดสินใจเขียนบทความนี้เพื่อแก้ไข!

หนึ่งในระบบปฏิบัติการยอดนิยมที่ทำงานบนเคอร์เนล Linux คือ Ubuntu ดังนั้นเราจะใช้เพื่ออธิบายเกี่ยวกับ ssh

ก่อนอื่น เราจะอธิบายขั้นตอนทั้งหมดโดยใช้ตัวอย่างของ Linux จากนั้นอธิบายใน Mac และ Windows!

การติดตั้ง SSH บนระบบปฏิบัติการ Linux

ในกรณี 99.99% Linux มีไคลเอ็นต์ ssh ติดตั้งอยู่แล้ว ซึ่งคุณสามารถเชื่อมต่อกับเครื่องระยะไกลได้ แต่ถ้าคุณต้องการเชื่อมต่อกับคอมพิวเตอร์ที่คุณใช้งานอยู่หรือเชื่อมต่อกับคอมพิวเตอร์อื่น ๆ คุณต้อง "ดาวน์โหลดเซิร์ฟเวอร์ ssh"

สิ่งนี้ทำได้ง่ายมาก ทุกสิ่งที่คุณต้องการมีอยู่ในที่เก็บซอฟต์แวร์แล้ว (a la a ร้านซอฟต์แวร์) เปิดเทอร์มินัลแล้วป้อนคำสั่ง:

Sudo apt ติดตั้งเซิร์ฟเวอร์ openssh

นั่นคือมันจำเป็น ส่วนเซิร์ฟเวอร์ซึ่งทำให้คอมพิวเตอร์สามารถเข้าถึงได้บนเครือข่ายผ่านโปรโตคอล ssh กิน ส่วนลูกค้าซึ่งติดตั้งไว้ในคอมพิวเตอร์ของคุณแล้ว และเมื่อใช้งาน คุณจะเชื่อมต่อกับคอมพิวเตอร์ระยะไกล

การเชื่อมต่อผ่าน SSH (ด้วยรหัสผ่าน)

เปิดเทอร์มินัลแล้วป้อนคำสั่งเพื่อเชื่อมต่อกับเครื่องระยะไกล:

สช ชื่อผู้ใช้@ที่อยู่ IP

ก่อนอื่นเราเขียน ssh จากนั้นชื่อผู้ใช้ที่อยู่บนเครื่องระยะไกล จากนั้นตามด้วยเครื่องหมาย @ (สุนัข) และที่อยู่ IP นี่คือตัวอย่าง:

สัส ซาช่า @ 100.08.30.48

ตามกฎแล้วการเชื่อมต่อ ssh จะเกิดขึ้นที่พอร์ต 22 หากคุณบังคับเปลี่ยนคุณจะต้องระบุ เมื่อต้องการทำเช่นนี้ ให้เขียน -p number ต่อท้าย นี่คือตัวอย่าง:

สัส ซาช่า @ 100.08.30.48 -พี 3040

หลังจากที่คุณเชื่อมต่อแล้ว และหากนี่เป็นการเชื่อมต่อกับเครื่องครั้งแรก คุณจะต้องเพิ่มเครื่องเข้ากับเครื่องที่เชื่อถือได้ - เขียนว่าใช่แล้วกด Enter นี้จะเสร็จสิ้นเพียงครั้งเดียว

สร้างคีย์ SSH และเชื่อมต่อโดยไม่ต้องใช้รหัสผ่าน!

เพื่อไม่ให้จำรหัสผ่านและไม่ต้องป้อนทุกครั้ง โดยเฉพาะอย่างยิ่งหากคุณมีเซิร์ฟเวอร์ Linux จำนวนมาก คุณสามารถสร้างคีย์ SSH พิเศษได้ รหัสนี้จะช่วยให้คุณสามารถเชื่อมต่อจากเครื่องที่ "รู้จัก" อยู่แล้วกับเซิร์ฟเวอร์ที่ "รู้จัก" โดยไม่ต้องใช้รหัสผ่าน

จะสร้างคีย์ SSH ได้อย่างไร?

เราจะสร้างคีย์บนคอมพิวเตอร์ที่คุณใช้งานอยู่ จากนั้นคุณจะต้องคัดลอกคีย์ไปยังเซิร์ฟเวอร์ของเรา!

สร้างคีย์สำหรับคอมพิวเตอร์ปัจจุบัน:

Ssh-keygen -t rsa

สร้างคีย์แล้ว ตอนนี้คุณต้องเพิ่มคีย์ลงในเครื่องหรือเซิร์ฟเวอร์ระยะไกล

จะเพิ่มคีย์ SSH ไปยังเซิร์ฟเวอร์ได้อย่างไร?

หากต้องการทำสิ่งนี้ ให้ป้อนคำสั่ง:

ssh-copy-id ชื่อผู้ใช้@ที่อยู่ IP

Ssh-copy-id ซาช่า @ 100.08.30.48

ขณะนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์หรือเครื่องอื่น ๆ ได้โดยไม่ต้องใช้รหัส เพียงแค่ป้อนชื่อผู้ใช้และรหัสผ่านของคุณ!

ไคลเอ็นต์ Windows SSH

หนึ่งในโปรแกรมยอดนิยมสำหรับการทำงานกับเซิร์ฟเวอร์ Linux ผ่าน SSH บน Windows คือโปรแกรม Putty คุณสามารถดาวน์โหลดไคลเอนต์ Windows SSH นี้ได้ตามที่อยู่นี้ - putty.org

การเชื่อมต่อผ่าน SSH ด้วยรหัสผ่านใน Windows

การเชื่อมต่อกับ Putty ผ่าน SSH นั้นง่ายมาก! ป้อนที่อยู่ IP หากคุณเปลี่ยนพอร์ต ให้ระบุพอร์ตอื่นแล้วคลิกเปิด:
และหลังจากเชื่อมต่อแล้วให้เข้าสู่ระบบและรหัสผ่าน!

การเชื่อมต่อผ่าน SSH โดยใช้คีย์ใน Windows

หากคุณไม่ต้องการป้อนรหัสผ่านทุกครั้ง แต่ใช้คีย์ ssh ใน Putty เช่นเดียวกับใน Linux คุณต้องสร้างคีย์ก่อนแล้วจึงโอนไปยังเซิร์ฟเวอร์

สร้างคีย์


อย่าเพิ่งปิดโปรแกรมและเรียกใช้ Putty เพื่อเชื่อมต่อ

กำลังโอนคีย์


ไคลเอ็นต์ Mac SSH

เนื่องจาก macOS ใช้ระบบ UNIX คุณจึงสามารถเชื่อมต่อผ่าน ssh ได้โดยตรงจากเทอร์มินัล!

หากคุณไม่ต้องการใช้รหัสผ่าน คุณต้องติดตั้ง Homebrew ก่อน:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

นอกจากนี้ยังมีไคลเอนต์ mac ssh ที่สะดวกสบาย - Termius

ไคลเอนต์ SSH สำหรับ Android และ iOS

ไคลเอนต์ SSH ที่สะดวกที่สุดสำหรับ iOS และ Android คือแอปพลิเคชั่น Termius!

การถ่ายโอนและการดาวน์โหลดไฟล์ผ่าน SSH (SCP)

หากต้องการอัปโหลดไฟล์จากเครื่องของคุณไปยังเซิร์ฟเวอร์ผ่าน ssh ใน Linux และ macOS:

ไฟล์ Scp1.tar root@ip_adress:/home/dir

คัดลอกไฟล์จากเซิร์ฟเวอร์ไปยังคอมพิวเตอร์ Linux หรือ macOS ในพื้นที่ของคุณ:

ชื่อผู้ใช้ Scp@ip_adress:/home/file1.tar /var/www/

จากเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์:

ผู้ใช้ Scp@server_ip1:/home/file.txt user@server_ip2:/home/

สำหรับวินโดวส์

หากต้องการย้ายไฟล์ผ่าน SSH บน Windows ให้ใช้ pscp

ไฟล์ pscp.exe.zip root@ip_server: /var/www/

การตั้งค่า SSH

หากคุณต้องการเพิ่มการเข้าสู่ระบบ SSH โดยตรงในฐานะรูท:

การเปลี่ยนพอร์ต SSH

เนื่องจากโดยค่าเริ่มต้น ssh ได้รับการกำหนดค่าไว้ที่พอร์ต 22 การใช้เซิร์ฟเวอร์จึงไม่ปลอดภัย ดังนั้นจึงควรเปลี่ยนพอร์ต!

และเปลี่ยนค่าพอร์ตให้เป็นค่าที่ต้องการ:

# พอร์ต, IP และโปรโตคอลใดที่เรารับฟังสำหรับพอร์ต 22

เข้าสู่ระบบโดยใช้คีย์ SSH เท่านั้น:

ใช้ nano แก้ไขเอกสาร sshd_config ป้อนคำสั่ง:

Sudo นาโน /etc/ssh/sshd_config.php

เปลี่ยนค่า PasswordAuthentication จากใช่เป็นไม่ใช่:

RSAAuthentication ใช่ PubkeyAuthentication ใช่ รหัสผ่านการรับรองความถูกต้อง no

คุณยังมีคำถามอยู่หรือไม่? เขียนไว้ในความคิดเห็น บอกเราว่าคุณทำอะไรหรือในทางกลับกัน!

แค่นั้นแหละ! อ่านบทความและคำแนะนำที่เป็นประโยชน์เพิ่มเติมในส่วนนี้ อยู่กับเว็บไซต์มันจะน่าสนใจยิ่งขึ้น!