การตั้งค่าสิทธิ์ .ssh/config ที่เหมาะสม

Setting Proper Ssh Config Permissions



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

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







NS .ssh โฟลเดอร์ มีไฟล์ SSH ที่จำเป็นเช่น:



  1. กุญแจสาธารณะและส่วนตัว ( id_rsa และ id_rsa.pub ).
  2. NS รู้จัก_hosts ไฟล์ – ประกอบด้วยพับลิกคีย์ของระบบรีโมตทั้งหมดที่คุณเชื่อมต่อ
  3. NS config ไฟล์การกำหนดค่าไคลเอนต์

ถ้า config ไม่มีไฟล์อยู่ คุณสามารถสร้างได้อย่างง่ายดายตามที่แสดง



$ touch ~/.ssh/config

ไฟล์การกำหนดค่าไคลเอ็นต์ .ssh/config

ทุกครั้งที่คุณเริ่มต้นการเชื่อมต่อ SSH คุณต้องระบุรายละเอียด เช่น ที่อยู่ IP หรือชื่อโดเมน และพอร์ต SSH ที่กำลังรับฟังอยู่ ตัวอย่างเช่น,

$ ssh [ป้องกันอีเมล] -p 22

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

ไฟล์กำหนดค่าตัวอย่างจะปรากฏขึ้นตามที่แสดง

โฮสต์การแสดงละคร-เซิร์ฟเวอร์
ชื่อโฮสต์ 192.168.2.103
ผู้ใช้ james
พอร์ต 22

คำสั่ง SSH อย่างง่ายในรีโมตโฮสต์จะมีลักษณะดังนี้:

$ ssh staging-เซิร์ฟเวอร์

สิทธิ์ของไฟล์ .ssh/config

โดยค่าเริ่มต้น the ~/.ssh/config ไฟล์การกำหนดค่าไคลเอ็นต์มี 644 สิทธิ์ของไฟล์ คุณสามารถตรวจสอบได้ว่าโดยใช้ปุ่ม ls -la คำสั่งดังนี้

$ ls -la ~ / .ssh / config

ซึ่งหมายความว่าทั้งเจ้าของและกลุ่มของไฟล์มีสิทธิ์อ่านและเขียน (rw) ในขณะที่ผู้ใช้รายอื่นมีสิทธิ์อ่านเท่านั้น (r)

-rw-rw-r--

บันทึก:

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

ที่นี่ ไฟล์ปรับแต่งได้รับการกำหนดสิทธิ์ 666 ซึ่งหมายความว่าทุกคนสามารถอ่านและเขียนไฟล์ได้

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

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

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

ในตัวอย่างด้านล่าง ~/.ssh/config ได้ตั้งความเป็นเจ้าของเป็น บ๊อบ:บ๊อบ

เพื่อแก้ไขปัญหานี้ ฉันเปลี่ยนกลับไปเป็นเจ้าของไฟล์ดั้งเดิมโดยใช้ปุ่ม chown สั่งการ.

$ sudo chown james:james ~/.ssh/config

เมื่อเปลี่ยนการอนุญาตของไฟล์แล้ว ตอนนี้ฉันสามารถเข้าถึงได้โดยเรียกใช้คำสั่ง SSH ตามด้วยชื่อโฮสต์ที่ระบุในไฟล์ปรับแต่ง

$ ssh staging-เซิร์ฟเวอร์

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