EC2: มีหลายคีย์ ssh สำหรับอินสแตนซ์หรือไม่?


12

เป็นไปได้หรือไม่ที่จะสร้างกุญแจส่วนตัวมากกว่าหนึ่งรหัสให้ SSH ในอินสแตนซ์ EC2? การปฏิบัติที่ดีที่สุดสำหรับเรื่องนี้คืออะไร? เรามีผู้ใช้หลายคนที่ต้องใช้ SSH ในเซิร์ฟเวอร์และการแจกจ่ายกุญแจเพียงปุ่มเดียวก็ใช้งานไม่ได้ สิ่งนี้ไม่อนุญาตให้เราลบผู้ใช้จากความสามารถใน SSH ลงในเซิร์ฟเวอร์เว้นแต่ว่าเราจะเปลี่ยนรหัสและแจกจ่ายใหม่


ดูเพิ่มเติมที่: security.stackexchange.com/questions/87480/…
Jason

เมื่อคุณทำการจัดการคีย์ SSH สำหรับทีมคุณควรดูเครื่องมือพิเศษเช่น Userify หรือ SSH UKM (ข้อจำกัดความรับผิดชอบ: ฉันทำงานให้กับ Userify)
Jamieson Becker

คำตอบ:


5

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


2
เมื่อคุณเริ่มต้องการจัดเก็บคีย์ SSH ใน LDAP ถึงเวลาที่ต้องเรียนรู้เกี่ยวกับ Kerberos
84104

1
ฉันปรับใช้ Kerberos แล้ว ส่วนตัวฉันคิดว่ามันเป็นทางออกในการค้นหาปัญหาและเป็นวิธีแก้ปัญหาที่ค่อนข้างพิถีพิถันและน่ารำคาญ
womble

2
@Ash: คำถามไปในคำถามไม่ใช่ความคิดเห็น
womble

1
ฉันจะเพิกเฉยต่อความคิดเห็นข้างต้น - แต่สำหรับทุกคนที่เพิ่งเข้ามาในเว็บไซต์ฉันรู้สึกว่าฉันควรทำให้ชัดเจนว่าถ้าคุณมีความคิดเห็นที่เกี่ยวข้องกับการใช้คำตอบคำชี้แจงหรือความเข้าใจผิดที่กำหนดควรชัดเจน ในความคิดเห็นเพื่อให้ OP สามารถแก้ไขคำตอบเพื่อชี้แจงความสับสนที่อาจเกิดขึ้น
Mazatec

2
ไม่คุณควรถามคำถามที่ชัดเจนในความคิดเห็นหากคำตอบไม่ได้ตอบคำถามที่ถามมา หากคุณต้องการถามคำถามใหม่ตามเนื้อหาของคำตอบคุณควรใช้ปุ่ม "ถามคำถาม" ขนาดใหญ่ที่มุมบนขวาของหน้าเพื่อถามคำถามใหม่ นี่เป็นเว็บไซต์ถามตอบไม่ใช่ฟอรัมสนทนา
womble

6

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

นอกจากนี้คุณยังสามารถทำในลักษณะอื่น - คุณเรียกใช้ ssh-keygen และ post ~ / .ssh / id_rsa (หรือ id_dsa) ให้กับผู้ใช้ และผู้ใช้บันทึกไฟล์เป็น ~ / .ssh / id_rsa เพียงจำไว้ว่าต้องเปลี่ยนการอนุญาตเป็น 600 (-rw -------) ของไฟล์นั้นมิฉะนั้น ssh จะไม่ยอมรับมัน เห็นได้ชัดว่ามีความปลอดภัยน้อยลงเนื่องจากมีการแจกจ่ายคีย์ส่วนตัวผ่านอีเมล

นอกจากนี้ยังสามารถทำได้ใน PuTTY ด้วย PuTTYgen


1

วิธีที่ง่ายกว่าดังแสดงด้านล่าง

สำหรับผู้ใช้ Linux / Mac:

  1. ในการสร้างคีย์สาธารณะและส่วนตัวใช้คำสั่งต่อไปนี้: $ ssh-keygen -t rsa -b 4096

  2. อัพโหลดกุญแจสาธารณะไปยังโฟลเดอร์ในที่เก็บ S3 ของคุณ ตัวอย่างเช่น: S3> MyBucket> Keypair

  3. บันทึกและรักษาความปลอดภัยคีย์ส่วนตัวของคุณ

สำหรับผู้ใช้ Windows:

  1. ใช้ puttygen เพื่อสร้างกุญแจ
  2. ติดตามDigitalOceanเพื่อสร้างคีย์ SSH
  3. อัปโหลดกุญแจสาธารณะไปที่S3> MyBucket> Keypair
  4. บันทึกและรักษาความปลอดภัยคีย์ส่วนตัวของคุณ

ขั้นตอนต่อไปนี้มีความสำคัญระหว่างการเปิดตัว Linux AMI ใด ๆ

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

  2. เพิ่มรหัสต่อไปนี้ภายใต้ส่วนข้อมูลผู้ใช้ในการกำหนดค่ารายละเอียดอินสแตนซ์> รายละเอียดขั้นสูง (เป็นข้อความ):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

การตั้งค่านี้สร้างUser1และUser2และเพิ่มไปยังผู้ใช้sudo AWS s3 CPสำเนาคำสั่งผู้ใช้กุญแจสาธารณะจากโฟลเดอร์ S3 .ssh/authorized_keys pathของพวกเขา ส่วนสุดท้ายคือการเรียกใช้คำสั่งในฐานะผู้ดูแลระบบโดยไม่ต้องใช้รหัสผ่าน

มีการปรับปรุงด้านความปลอดภัยมากมายที่สามารถแนะนำได้ที่นี่ แม้ว่าจะไม่ได้ใช้อย่างชัดเจนในตัวอย่างนี้การ จำกัด การเข้าถึงที่ฝากข้อมูล S3 ไปยังที่ฝากข้อมูลเฉพาะและการรู้ถึงผลกระทบด้านความปลอดภัยของการปิดใช้งานการใช้รหัสผ่านใน sudo นั้นเป็นเพียงบางสิ่งที่สามารถเน้นได้ ใช้อย่างชาญฉลาดตามความต้องการเฉพาะของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.