Score:0

การตรวจสอบสิทธิ์ SSH แบบไม่ใช้คีย์สาธารณะแบบคัดลอก/วาง

ธง cn

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

ปัญหาหลักที่ฉันพยายามแก้ไขที่นี่คือ:

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

ฉันได้ตรวจสอบ:

  • การตรวจสอบสิทธิ์ ssh ที่ใช้ตัวตรวจสอบความถูกต้องของ Google

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

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

ขอบคุณ!

Score:1
ธง us
  1. สวัสดี ถ้าฉันเข้าใจปัญหาของคุณ ฉันคิดว่าสามารถแก้ไขได้ด้วยการสร้างสคริปต์ง่ายๆ โดยใช้การคัดลอกไฟล์ที่ปลอดภัยของ OpenSSH scp สั่งการ.

  2. หากทุกทีมต้องการสิทธิ์แบบเดียวกันสำหรับเซิร์ฟเวอร์เดียวกัน คำแนะนำของฉันคือ:

    • สร้างไฟล์ Authorized_keys ในคอมพิวเตอร์ของคุณเอง
    • อัปเดตไฟล์นั้นตามความต้องการของทีมด้วยตนเอง (สามารถใช้สคริปต์สำหรับสองคนนั้น)
  3. สร้างสคริปต์เพื่อคัดลอก Authorized_keys ที่อัปเดตโดยอัตโนมัติจากคอมพิวเตอร์ของคุณไปยังเซิร์ฟเวอร์ของคุณ:

    • scp ต้องได้รับอนุญาตจากเซิร์ฟเวอร์ในการทำงาน นั่นคือสาเหตุที่สคริปต์ควรเรียกใช้จากคอมพิวเตอร์ตัวจัดการของคุณหรือเครื่องอื่น
  4. ค้นหาสคริปต์ใน /usr/local/sbin/. บนเครื่องของคุณ สำหรับตัวเลือกในการเรียกใช้สคริปต์จากไดเร็กทอรีใดก็ได้บนพีซีของคุณ

  5. ให้สิทธิ์ในการดำเนินการแก่สคริปต์โดยคำสั่ง chmod a+x /usr/local/sbin/ชื่อสคริปต์.

    • สคริปต์:
#/ถัง/ทุบ!

อ่าน -p "กรุณาป้อนเส้นทาง:" -r r1

scp $r1 username@serverip:/home/username/.ssh/authorized_keys
#scp $r1 username@serverip:/home/username/.ssh/authorized_keys
#scp $r1 username@serverip:/home/username/.ssh/authorized_keys
#เพิ่มเซิร์ฟเวอร์หากจำเป็น....
#คุณสามารถใช้สวิตช์เพื่อใช้เซิร์ฟเวอร์ที่เกี่ยวข้องสำหรับผู้ใช้ใหม่

โปรดทราบว่าหากคุณเรียกใช้บริการ ssh บนพอร์ตอื่นจากความปลอดภัยหรือเหตุผลอื่นๆ คุณควรเรียกใช้ scp สั่งการด้วย -ป ตัวเลือก.

scp -P sshPort $r1 username@serverip:/home/username/.ssh/authorized_keys.

ภาพตัวอย่างของสคริปต์ที่ทำงานบนเซิร์ฟเวอร์ของฉันเอง: ป้อนคำอธิบายรูปภาพที่นี่

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

หวังว่าจะช่วยคุณออกเพื่อน

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

Pallav Jha avatar
cn flag
สวัสดี @CrazyTux - ขอบคุณสำหรับคำตอบ ขณะนี้ฉันกำลังมองหาวิธีแยกตรรกะการตรวจสอบสิทธิ์ ssh กับฐานผู้ใช้ เพื่อให้ขั้นตอนต่างๆ เช่น การคัดลอก/วาง หรือการถ่ายโอนคีย์ถูกลบออก ขณะนี้ฉันกำลังดูการรับรองความถูกต้องตาม LDAP เพื่อที่เมื่อบัญชีผู้ใช้ถูกสร้างขึ้นที่นั่น เซิร์ฟเวอร์ทั้งหมดจะใช้สิ่งนั้นสำหรับการตรวจสอบสิทธิ์

โพสต์คำตอบ

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