เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

โปรดทราบว่าการแสดงหน้าต่างเทอร์มินัลจากเครื่องระยะไกลถือเป็นการแสดงรูปภาพด้วย


ภาพ

10.4.4. ชุด SSH


10.4.4.1. บทนำ


ระบบ UNIX และ Linux ส่วนใหญ่ใช้ Secure SHell เพื่อหลีกเลี่ยงความเสี่ยงด้านความปลอดภัยที่มาพร้อมกับ Telnet. ระบบ Linux ส่วนใหญ่จะเรียกใช้ OpenSSH เวอร์ชันหนึ่ง ซึ่งเป็นการนำโปรโตคอล SSH ไปใช้งานแบบโอเพ่นซอร์ส ซึ่งให้การสื่อสารที่เข้ารหัสอย่างปลอดภัยระหว่างโฮสต์ที่ไม่น่าเชื่อถือบนเครือข่ายที่ไม่น่าเชื่อถือ ในการตั้งค่ามาตรฐาน การเชื่อมต่อ X จะถูกส่งต่อโดยอัตโนมัติ แต่พอร์ต TCP/IP ตามอำเภอใจอาจถูกส่งต่อโดยใช้ช่องทางที่ปลอดภัย


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


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


เซสชันจะสิ้นสุดลงเมื่อคำสั่งหรือเชลล์บนเครื่องระยะไกลออก และการเชื่อมต่อ X11 และ TCP/IP ทั้งหมดถูกปิด


เมื่อเชื่อมต่อกับโฮสต์เป็นครั้งแรก โดยใช้โปรแกรมใดๆ ที่รวมอยู่ในคอลเล็กชัน SSH คุณต้องสร้างความถูกต้องของโฮสต์นั้นและรับทราบว่าคุณต้องการเชื่อมต่อ:


เลนนี่ ~> ssh หยด

ไม่สามารถสร้างความถูกต้องของโฮสต์ 'blob (10.0.0.1)' ลายนิ้วมือ RSA คือ 18:30:50:46:ac:98:3c:93:1a:56:35:09:8d:97:e3:1d คุณแน่ใจหรือว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่

คำเตือน: เพิ่ม 'blob,192.168.30.2' (RSA) อย่างถาวรในรายการโฮสต์ที่รู้จัก

เข้าสู่ระบบครั้งล่าสุด: ส. 28 ธ.ค. 13:29:19 2002 จาก octarine พื้นที่นี้ให้เช่า


เลนนี่อยู่ใน ~

เลนนี่ ~> ssh หยด

ไม่สามารถสร้างความถูกต้องของโฮสต์ 'blob (10.0.0.1)' ลายนิ้วมือ RSA คือ 18:30:50:46:ac:98:3c:93:1a:56:35:09:8d:97:e3:1d คุณแน่ใจหรือว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่

คำเตือน: เพิ่ม 'blob,192.168.30.2' (RSA) อย่างถาวรในรายการโฮสต์ที่รู้จัก

เข้าสู่ระบบครั้งล่าสุด: ส. 28 ธ.ค. 13:29:19 2002 จาก octarine พื้นที่นี้ให้เช่า


เลนนี่อยู่ใน ~

สิ่งสำคัญคือคุณต้องพิมพ์ "ใช่" ด้วยอักขระสามตัว ไม่ใช่แค่ "y" สิ่งนี้จะแก้ไข .ของคุณ ~/.ssh/known_hosts

ไฟล์ ดูหัวข้อ 10.4.4.3


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


ภาพ

เลนนี่ ~> ssh blob ใคร

รหัสผ่านของ jenny@blob:


ราก

tty2

กรกฎาคม

24

07:19

lena

tty3

กรกฎาคม

23

22:24

lena

0:

กรกฎาคม

25

22:03

เลนนี่ ~> อูเนม -n

magrat.example.com


ภาพ


10.4.4.2. การส่งต่อ X11 และ TCP


ถ้า X11 ส่งต่อ รายการถูกกำหนดเป็น ใช่ บนเครื่องเป้าหมายและผู้ใช้กำลังใช้แอปพลิเคชัน X, the การแสดงผล ตั้งค่าตัวแปรสภาพแวดล้อมแล้ว การเชื่อมต่อกับจอแสดงผล X11 จะถูกส่งต่อโดยอัตโนมัติไปยังฝั่งระยะไกลเพื่อให้โปรแกรม X11 ที่เริ่มต้นจากเชลล์ผ่านช่องสัญญาณที่เข้ารหัส และการเชื่อมต่อกับเซิร์ฟเวอร์ X จริงจะทำจาก เครื่องท้องถิ่น ผู้ใช้ไม่ควรตั้งค่าด้วยตนเอง การแสดงผล. การส่งต่อการเชื่อมต่อ X11 สามารถกำหนดค่าได้บนบรรทัดคำสั่งหรือใน sshd ไฟล์การกำหนดค่า


ค่าสำหรับ การแสดงผล ตั้งโดย SSH จะชี้ไปที่เครื่องเซิร์ฟเวอร์ แต่มีตัวเลขที่แสดงมากกว่าศูนย์ เป็นเรื่องปกติและเกิดขึ้นเพราะ SSH สร้าง หนังสือมอบฉันทะ เซิร์ฟเวอร์ X บนเครื่องเซิร์ฟเวอร์ (ที่รันแอปพลิเคชันไคลเอนต์ X) สำหรับการส่งต่อการเชื่อมต่อผ่านช่องทางที่เข้ารหัส


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


รูปที่ 10-3 การส่งต่อ SSH X11


ภาพ


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


การส่งต่อการเชื่อมต่อ TCP/IP ตามอำเภอใจผ่านช่องทางที่ปลอดภัยสามารถระบุได้ในบรรทัดคำสั่งหรือในไฟล์การกำหนดค่า


ภาพเซิร์ฟเวอร์ X

กระบวนงานนี้อนุมานว่าคุณมีเซิร์ฟเวอร์ X ที่กำลังทำงานอยู่บนไคลเอนต์ที่คุณต้องการแสดงแอปพลิเคชันจากโฮสต์ระยะไกล ไคลเอนต์อาจมีสถาปัตยกรรมและระบบปฏิบัติการที่แตกต่างจากโฮสต์ระยะไกล ตราบใดที่สามารถเรียกใช้เซิร์ฟเวอร์ X เช่น Cygwin (ซึ่งใช้เซิร์ฟเวอร์ X.org สำหรับไคลเอนต์ MS Windows และอื่น ๆ ) หรือเกินควร เพื่อตั้งค่าการเชื่อมต่อระยะไกลกับเครื่อง Linux หรือ UNIX


ภาพ

10.4.4.3. การตรวจสอบเซิร์ฟเวอร์


พื้นที่ SSH ระบบไคลเอนต์/เซิร์ฟเวอร์จะดูแลและตรวจสอบฐานข้อมูลที่มีการระบุตัวตนโดยอัตโนมัติสำหรับโฮสต์ทั้งหมดที่เคยใช้งานด้วย คีย์โฮสต์ถูกเก็บไว้ใน $HOME/.ssh/known_hosts ในโฮมไดเร็กทอรีของผู้ใช้ นอกจากนี้ไฟล์ /etc/ssh/ssh_known_hosts จะถูกตรวจสอบโดยอัตโนมัติสำหรับโฮสต์ที่รู้จัก โฮสต์ใหม่จะถูกเพิ่มลงในไฟล์ของผู้ใช้โดยอัตโนมัติ หากการระบุตัวตนของโฮสต์มีการเปลี่ยนแปลง SSH เตือนเกี่ยวกับสิ่งนี้และปิดใช้งานการตรวจสอบรหัสผ่านเพื่อป้องกันไม่ให้ม้าโทรจันได้รับรหัสผ่านของผู้ใช้

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


ภาพ


10.4.4.4. การคัดลอกระยะไกลอย่างปลอดภัย


ชุด SSH ให้บริการ SCP เป็นทางเลือกที่ปลอดภัยแทน cpr คำสั่งที่เคยนิยมเมื่อเท่านั้น รช

มีอยู่ SCP ใช้ SSH สำหรับการถ่ายโอนข้อมูล ใช้การรับรองความถูกต้องเดียวกันและให้การรักษาความปลอดภัยเช่นเดียวกับ SSH. แตกต่าง cpr, SCP จะขอรหัสผ่านหรือข้อความรหัสผ่านหากจำเป็นสำหรับการตรวจสอบสิทธิ์:


เลนนี่ /var/tmp> scp Schedule.sdc.gz หยด:/var/tmp/

รหัสผ่านของ lenny@blob:

Schedule.sdc.gz 100% |*****************************| 100 KB 00:00 น.


เลนนี่ /var/tmp>

เลนนี่ /var/tmp> scp Schedule.sdc.gz หยด:/var/tmp/

รหัสผ่านของ lenny@blob:

Schedule.sdc.gz 100% |*****************************| 100 KB 00:00 น.


เลนนี่ /var/tmp>

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


หากคุณต้องการใช้อินเทอร์เฟซแบบ FTP ให้ใช้ SFTP:


เลนนี่ /var/tmp> sftp หยด กำลังเชื่อมต่อกับ blob... lenny@blob's password:


sftp> ซีดี /var/tmp


sftp> รับ Sch*

กำลังดึงข้อมูล /var/tmp/Schedule.sdc.gz ไปยัง Schedule.sdc.gz sftp> ลาก่อน

เลนนี่ /var/tmp>

เลนนี่ /var/tmp> sftp หยด กำลังเชื่อมต่อกับ blob... lenny@blob's password:


sftp> ซีดี /var/tmp


sftp> รับ Sch*

กำลังดึงข้อมูล /var/tmp/Schedule.sdc.gz ไปยัง Schedule.sdc.gz sftp> ลาก่อน

เลนนี่ /var/tmp>


ภาพสำเนาที่ปลอดภัยหรือ FTP GUIs

รู้สึกไม่สบายใจกับบรรทัดคำสั่งหรือยัง ลองใช้ความสามารถของ Konqueror เพื่อการคัดลอกระยะไกลที่ปลอดภัย หรือติดตั้ง Putty


ภาพ


10.4.4.5. คีย์การตรวจสอบสิทธิ์


พื้นที่ SSH-keygen คำสั่งสร้าง จัดการ และแปลงคีย์การพิสูจน์ตัวตนสำหรับ SSH. สามารถสร้างคีย์ RSA สำหรับใช้โดยโปรโตคอล SSH เวอร์ชัน 1 และคีย์ RSA หรือ DSA สำหรับใช้โดยโปรโตคอล SSH เวอร์ชัน 2


โดยปกติผู้ใช้แต่ละคนที่ต้องการใช้ SSH กับการตรวจสอบสิทธิ์ RSA หรือ DSA จะดำเนินการนี้เพียงครั้งเดียวเพื่อสร้างคีย์การตรวจสอบสิทธิ์ใน $HOME/.ssh/identity, id_dsa or id_rsa. นอกจากนี้ ผู้ดูแลระบบอาจใช้สิ่งนี้เพื่อสร้างโฮสต์คีย์สำหรับระบบ


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


ไม่มีทางที่จะกู้คืนข้อความรหัสผ่านที่หายไปได้ หากข้อความรหัสผ่านสูญหายหรือลืม จะต้องสร้างคีย์ใหม่และคัดลอกไปยังคีย์สาธารณะที่เกี่ยวข้อง


เราจะศึกษาคีย์ SSH ในแบบฝึกหัด ข้อมูลทั้งหมดสามารถพบได้ใน man หรือหน้าข้อมูล


ภาพ


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: