วิธีการแลกเปลี่ยนคีย์ SSH สำหรับการพิสูจน์ตัวจริงด้วยรหัสผ่านระหว่างเซิร์ฟเวอร์ Linux?

ใช้การพิสูจน์ตัวตนแบบใช้คีย์ SSH บน Linux


SSH (Secured Shell) เป็นโปรโตคอลที่สร้างการเชื่อมต่อที่ปลอดภัยด้วยการเข้ารหัสระหว่างไคลเอนต์ SSH และเซิร์ฟเวอร์ระยะไกล.

การใช้ SSH คุณสามารถจัดการและจัดการเซิร์ฟเวอร์ระยะไกลได้อย่างปลอดภัย สิ่งนี้มีประโยชน์ในหลาย ๆ ด้าน.

  • การปรับใช้หลายเซิร์ฟเวอร์
  • หยุด / เริ่มบริการจากระยะไกล
  • การทำงานอัตโนมัติ

และความคิดสร้างสรรค์ของคุณ (หวังว่า) …

ในฐานะผู้ดูแลระบบนี่เป็นสิ่งพื้นฐานที่ควรทราบ.

มาเรียนรู้วิธี …

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

คุณจะได้เรียนรู้สิ่งต่อไปนี้.

  • ติดตั้ง SSH (ไม่จำเป็นถ้าติดตั้งไว้แล้ว)
  • สร้างคีย์ SSH
  • คัดลอกคีย์ SSH ไปยังเซิร์ฟเวอร์ระยะไกล
  • ล็อกอินเข้าสู่รีโมตเซิร์ฟเวอร์โดยใช้ SSH

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

  • ลูกค้า (ผู้ใช้ -> geekflare): 192.168.56.102
  • ระยะไกล (ผู้ใช้ -> อูบุนตู): 192.168.56.101

กำลังติดตั้ง SSH

ก่อนที่คุณจะทำตามขั้นตอนที่กล่าวถึงในบทความนี้ตรวจสอบให้แน่ใจว่า openssh-server ได้รับการติดตั้งบนเซิร์ฟเวอร์ หากยังไม่ได้ติดตั้งให้รันคำสั่งด้านล่างเพื่อติดตั้ง.

sudo apt-get install openssh-server

sudo systemctl เปิดใช้งาน ssh

sudo systemctl เริ่ม ssh

คุณสามารถเรียกใช้คำสั่ง ssh เพื่อตรวจสอบว่ามีการติดตั้งบนระบบหรือไม่.

[email protected]: ~ $ ssh

การใช้งาน: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:] พอร์ต]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i identity_file] [-J [[email protected]] host [: port]] [-L address]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o ตัวเลือก] [-p พอร์ต]

[-Q query_option] [ที่อยู่ -R] [-S ctl_path] [-W host: พอร์ต]

[-w local_tun [: remote_tun]] ปลายทาง [คำสั่ง]

สร้างคีย์ SSH

สิ่งนี้จะต้องทำบนเซิร์ฟเวอร์ลูกค้า.

รันคำสั่ง ssh-keygen เพื่อสร้างคีย์ SSH เพียงแค่กด Enter เมื่อมันถามหาไฟล์, วลีรหัสผ่าน, วลีรหัสผ่านเดียวกัน มันสร้างคู่ของคีย์ในไดเรกทอรี ~ / .ssh โดยค่าเริ่มต้น Id_rsa เป็นคีย์ส่วนตัวและ id_rsa.pub เป็นกุญแจสาธารณะที่เชื่อมโยง.

[email protected]: ~ $ ssh-keygen

สร้างคู่คีย์ rsa สาธารณะ / ส่วนตัว.

ป้อนไฟล์ที่จะบันทึกคีย์ (/home/geekflare/.ssh/id_rsa):

ป้อนข้อความรหัสผ่าน (ว่างเปล่าเพราะไม่มีข้อความรหัสผ่าน):

ป้อนวลีรหัสผ่านเดียวกันอีกครั้ง:

ข้อมูลประจำตัวของคุณได้รับการบันทึกใน /home/geekflare/.ssh/id_rsa.

รหัสสาธารณะของคุณได้รับการบันทึกใน /home/geekflare/.ssh/id_rsa.pub.

กุญแจสำคัญคือ:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [email protected]

ภาพสุ่มของกุญแจคือ:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| OO . . o |

| .. *. * |

| ข. ส. โอ |

| ต. . . … . |

| + @ o o E = o |

| B + o + .o. = |

| + … o. oo + |

+—-[SHA256]—–+

มันจะสร้างไฟล์ใหม่สองไฟล์ในไดเรกทอรี ~ / .ssh.

คัดลอกคีย์ SSH ไปยังเซิร์ฟเวอร์ระยะไกล

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

และจะทำเช่นนั้น:

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

mkdir -p ~ / .ssh

หากคุณมีโฟลเดอร์. ssh อยู่แล้วให้ทำการสำรองข้อมูล.

ถัดไปให้กดรหัสสาธารณะจากเซิร์ฟเวอร์ลูกค้า.

บนเครื่องไคลเอนต์ (192.168.56.102) ให้เรียกใช้คำสั่งด้านล่างเพื่อคัดลอกกุญแจสาธารณะบนเซิร์ฟเวอร์ระยะไกลภายในไฟล์ authorized_keys ในไดเรกทอรี. ssh.

[email protected]: ~ $ cat .ssh / id_rsa.pub | SSH [email protected] ‘แมว >> .SSH / authorized_keys’

[email protected]รหัสผ่านของ:

เรียกใช้คำสั่งด้านล่างเพื่อตั้งค่าการอนุญาตสำหรับไฟล์ authorized_keys บนเซิร์ฟเวอร์ระยะไกล.

[email protected]: ~ $ ssh [email protected] "chmod 700 .ssh; chmod 640 .ssh / authorized_keys"

เยี่ยมมากนี่คือข้อสรุปที่สำคัญคือการแลกเปลี่ยนและได้รับอนุญาตเป็นชุดทั้งหมด.

เข้าสู่ระบบ Remote Server โดยใช้ SSH

ลองทดสอบดูว่าใช้ได้ไหม!

ลองลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกล (192.168.56.101) จากเครื่องไคลเอนต์ (192.168.56.102) ในฐานะผู้ใช้ geekflare.

เรียกใช้คำสั่งด้านล่างเพื่อทดสอบจะไม่ถามรหัสผ่านในครั้งนี้.

[email protected]: ~ $ ssh [email protected]

ยินดีต้อนรับสู่ Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-generic i686)

* เอกสารประกอบ: https://help.ubuntu.com

* การจัดการ: https://landscape.canonical.com

* การสนับสนุน: https://ubuntu.com/advantage

สามารถอัพเดท 346 แพ็คเกจ.

11 การปรับปรุงเป็นการปรับปรุงความปลอดภัย.

ลงชื่อเข้าใช้ครั้งสุดท้าย: จ. 17 มิ.ย. 00:10:32 2019 จาก 192.168.56.101

ที่นี่คุณไป …

ฉันเข้าสู่เซิร์ฟเวอร์ระยะไกลได้สำเร็จ การรันคำสั่งด้านล่างจะให้รายละเอียด IP ของเครื่องระยะไกล.

[email protected]: ~ $ ifconfig

enp0s3 ลิงก์ encap: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 Mask: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 ขอบเขต: ลิงก์

ออกอากาศแบบมัลติคาสต์วิ่ง MTU: 1500 เมตริก: 1

แพ็กเก็ต RX: ข้อผิดพลาด 20239: 0 ลดลง: 0 overruns: 0 เฟรม: 0

แพ็กเก็ต TX: 5406 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 ผู้ให้บริการ: 0

การชน: 0 txqueuelen: 1,000

จำนวนไบต์: 22678039 (22.6 MB) TX ไบต์: 701710 (701.7 KB)

enp0s8 ลิงก์ encap: อีเธอร์เน็ต HWaddr 08: 00: 27: a9: 4a: 6b

inet addr: 192.168.56.101 Bcast: 192.168.56.255 รูปแบบ: 255.255.255.0

inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 ขอบเขต: ลิงก์

ออกอากาศแบบมัลติคาสต์วิ่ง MTU: 1500 เมตริก: 1

แพ็กเก็ต RX: 330 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 เฟรม: 0

แพ็กเก็ต TX: 197 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 ผู้ให้บริการ: 0

การชน: 0 txqueuelen: 1,000

จำนวนไบต์: 42847 (42.8 KB) TX ไบต์: 32774 (32.7 KB)

lo Link encap: Local Loopback

inet addr: 127.0.0.1 รูปแบบ: 255.0.0.0

inet6 addr: :: 1/128 ขอบเขต: โฮสต์

การเรียกใช้ LOOPBACK RUNNING MTU: 65536 ตัวชี้วัด: 1

แพ็คเก็ต RX: ข้อผิดพลาด 997: 0 ลดลง: 0 overruns: 0 เฟรม: 0

แพ็กเก็ต TX: 997 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 ผู้ให้บริการ: 0

การชน: 0 txqueuelen: 1

จำนวนไบต์: 79654 (79.6 KB) TX ไบต์: 79654 (79.6 KB)

ข้อสรุป

การตั้งค่าการแลกเปลี่ยนคีย์ SSH นั้นตรงไปตรงมามากอย่างที่คุณเห็น ฉันหวังว่านี่จะช่วยคุณและสนใจในการเรียนรู้การจัดการ Linux และการแก้ไขปัญหาจากนั้นลองดูสิ่งนี้ แน่นอน Udemy.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map