Score:1

วิธีดึงหรือสร้างไฟล์ลบใหม่จากไดเร็กทอรี /etc/ssh

ธง kz

ใน /etc/ssh ไดเร็กทอรีมีเนื้อหาดังต่อไปนี้:

โมดูล sshd_config ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key ssh_import_id
ssh_config sshd_config.ucf-dist ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub

ฉันสามารถดูได้สองประเภท:

  1. คีย์สาธารณะ/ส่วนตัว
  2. ไฟล์คอนฟิกูเรชัน

หากไฟล์เหล่านั้นสำหรับหมวดหมู่เหล่านี้ถูกลบโดยไม่ได้ตั้งใจ

ไฟล์นั้นจะถูกสร้างขึ้นใหม่ได้อย่างไร? เป็นไปได้อย่างไร? ตามแต่ละประเภท (1 หรือ 2)

in flag
หากคุณกังวลว่าไฟล์เหล่านี้สามารถถูกลบได้ "โดยไม่ได้ตั้งใจ" ฉันขอแนะนำอย่างใดอย่างหนึ่งจากสองสิ่งต่อไปนี้: (1) มีการสำรองข้อมูลที่ดี *จริงๆ* ด้วยกระบวนการอัตโนมัติที่ทำงานเป็นประจำ (2) ดำเนินการทำลายล้างตามที่คุณวางแผนไว้ ใช้ภายในเครื่องเสมือน *ก่อน* จากนั้นรันบนระบบของคุณหลังจากยืนยันว่าไม่มีข้อผิดพลาดเกิดขึ้น ฉันใช้ Linux มาตั้งแต่ช่วงกลางทศวรรษที่ 90 และนึกไม่ถึงว่าจะมีสักครั้งที่ฉันลบอะไรใน `/etc/ssh` "โดยไม่ได้ตั้งใจ" ...นอกเหนือจากครั้งนั้นฉันทำลายพาร์ติชั่นด้วยคำสั่ง `dd` ที่เขียนไม่ดี ...
user535733 avatar
cn flag
ไม่สามารถสร้างคีย์เก่าขึ้นใหม่ได้ (ซึ่งจะทำลายวัตถุประสงค์ทั้งหมดของการตรวจสอบสิทธิ์โดยใช้คีย์) คุณต้องสร้างคีย์ใหม่ "*ลบโดยไม่ได้ตั้งใจ*" คือสาเหตุที่คุณมีข้อมูลสำรอง
Manuel Jordan avatar
kz flag
ฉันรู้ว่า `/ etc / ssh` ขอรหัสผ่านรูท / ผู้ดูแลระบบ - แต่ฉันสงสัยว่ามีวิธีสร้างไฟล์นั้นใหม่หรือไม่ (ส่วนใหญ่เกี่ยวกับคีย์) - ตามที่ 'คุณต้องสร้างคีย์ใหม่' เป็นไปได้ - นั่น ไฟล์แตกต่างจากไดเร็กทอรี `.ssh` มาก - ดังนั้นฉันจึงถือว่าคำสั่งอื่นเข้ามาทำงาน
in flag
คีย์ต้องไม่ซ้ำกันหากจะนำไปใช้ประโยชน์ใดๆ ถ้ามีคนสามารถสร้างมันขึ้นมาใหม่ได้ การเข้ารหัสก็จะกลายเป็นตำนาน
Manuel Jordan avatar
kz flag
เข้าใจแล้ว - แต่เป็นไปได้ไหมที่จะสร้างค่าใหม่ด้วยค่าใหม่ - ในกรณีนี้ ลูกค้าต้องอัปเดตไฟล์ `known_hosts` ตามค่าใหม่ (สำหรับการเชื่อมต่อใหม่ - ครั้งแรกที่พวกเขาได้รับลายนิ้วมือของโฮสต์เป็นอย่างไร) - ฉันถูกต้องหรือไม่
user535733 avatar
cn flag
คุณสามารถสร้างคีย์ใหม่ได้มากเท่าที่คุณต้องการ การสร้างคีย์ใหม่เป็นเรื่องเล็กน้อย ชัดเจนเมื่อคุณพูดว่า "ไคลเอนต์": ไคลเอนต์ ssh มีคีย์ส่วนตัวที่ไม่สามารถทำซ้ำได้ เซิร์ฟเวอร์ ssh มีรหัสสาธารณะเท่านั้น ไคลเอนต์ ssh ต้องส่งรหัสสาธารณะใหม่ (สอดคล้องกับรหัสส่วนตัวใหม่) ไปยังเซิร์ฟเวอร์ ssh สิ่งนี้มักต้องการความช่วยเหลือจากผู้ดูแลระบบ เนื่องจากไคลเอนต์ ssh ไม่สามารถเข้าสู่ระบบได้จนกว่าจะติดตั้งพับลิกคีย์ใหม่ในเซิร์ฟเวอร์ ssh นั่นไม่ใช่การดำเนินการเล็กน้อย ... เว้นแต่คุณจะเป็นผู้ดูแลระบบของเซิร์ฟเวอร์ ssh ด้วย
Manuel Jordan avatar
kz flag
ใช่เกี่ยวกับ _client_ (`.ssh`) ซึ่งฉันสามารถสร้างคีย์คู่ได้ตลอดเวลาและส่ง / ใส่ค่าของคีย์สาธารณะไปยังไฟล์ `.ssh/authorized_keys` ในเซิร์ฟเวอร์ แต่ที่นี่โพสต์เกี่ยวกับเซิร์ฟเวอร์ โดยที่ในไดเร็กทอรี `/etc/ssh` มีค่าคีย์บางค่าที่ส่งสำหรับไคลเอนต์สำหรับการเชื่อมต่อ ssh ครั้งแรก - ค่าหนึ่งเกี่ยวกับลายนิ้วมือ (ECDSA) และอีกค่าหนึ่งคือสำเนาของคีย์สาธารณะของเซิร์ฟเวอร์ไปยัง `.ssh/known_hosts` ในไคลเอ็นต์
user535733 avatar
cn flag
คุณกำลังพยายามป้องกันคำเตือนลายนิ้วมือบนไคลเอนต์ ssh หรือไม่
muru avatar
us flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะกู้คืนไฟล์การกำหนดค่าได้อย่างไร](https://askubuntu.com/questions/66533/how-can-i-restore-configuration-files) และ https://askubuntu.com/questions/600584/error-could -not-load-host-key-เมื่อพยายามสร้างใหม่-ssh-host-keys
Score:3
ธง cn

ใน Ubuntu ไฟล์การกำหนดค่าไคลเอนต์ / เซิร์ฟเวอร์ OpenSSH คือ:

  • /etc/ssh/sshd_config - ไฟล์การกำหนดค่าของเซิร์ฟเวอร์ SSH (ภูต) สามารถเพิ่มไฟล์คอนฟิกูเรชันเพิ่มเติมในไดเร็กทอรีได้ /etc/ssh/sshd_config.d/ และนามสกุลไฟล์ต้องเป็น .conf (สิ่งเหล่านี้ถูกเรียกใช้ในตอนต้นของ /etc/ssh/sshd_config).

  • /etc/ssh/ssh_config - ไฟล์การกำหนดค่าทั้งระบบสำหรับไคลเอนต์ SSH การตั้งค่าในไฟล์นี้ใช้กับผู้ใช้ทั้งหมด สามารถเพิ่มไฟล์คอนฟิกูเรชันเพิ่มเติมในไดเร็กทอรีได้ /etc/ssh/ssh_config.d/ และนามสกุลไฟล์ต้องเป็น .conf (สิ่งเหล่านี้ถูกเรียกใช้ในตอนต้นของ /etc/ssh/ssh_config).

  • ~/.ssh/config - ไฟล์การกำหนดค่าส่วนบุคคลสำหรับไคลเอ็นต์ SSH ไฟล์นี้อยู่ในโฮมไดเร็กทอรีของผู้ใช้ภายในไดเร็กทอรีพิเศษชื่อ .ssh. ไดเร็กทอรีเองต้องมีสิทธิ์ส่วนตัว (700) และไฟล์ข้างในต้องเป็นส่วนตัวด้วย (600)

คีย์สาธารณะ/ส่วนตัวเป็นกรรมสิทธิ์ของผู้ใช้ ดังนั้นจึงเป็นคีย์ส่วนตัว :) โดยค่าเริ่มต้นจะอยู่ในไดเร็กทอรีของผู้ใช้ ~/.ssh.

ในคำตอบของฉันในส่วนที่ 1 และ 2 ได้อธิบายวิธีตั้งค่าการตรวจสอบสิทธิ์ SSH ตามคีย์: https://askubuntu.com/a/986245/566421

นี่คือตัวอย่างกรณีที่คีย์ SSH ไม่ได้อยู่ในโฮมไดเร็กทอรีของผู้ใช้: https://askubuntu.com/a/882379/566421

หากคุณต้องการสร้างไดเร็กทอรีใหม่ /etc/ssh คุณสามารถล้างไคลเอนต์และเซิร์ฟเวอร์ OpenSSH จากนั้นติดตั้งใหม่ (แต่คุณอาจไม่ต้องการสิ่งนี้):

อัปเดต sudo apt
sudo apt ล้าง opensh-ไคลเอนต์ opensh-เซิร์ฟเวอร์
sudo rm -R /etc/ssh
sudo apt ติดตั้ง openssh-ไคลเอนต์ opensh-เซิร์ฟเวอร์
Manuel Jordan avatar
kz flag
ในทางปฏิบัติแล้วอันล่าสุดดูเหมือนจะใช้งานได้จริงมากกว่า - แต่แน่นอนว่าไคลเอนต์ทั้งหมดจะต้องอัปเดตด้วยคีย์ใหม่ของเซิร์ฟเวอร์ - สำหรับสถานการณ์สำหรับ LAN ขนาดเล็ก

โพสต์คำตอบ

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