วิธีสร้างไฟล์ Openssl .pem และตำแหน่งที่เราต้องวางไฟล์


13

ฉันต้องการสร้าง.pemไฟล์OpenSSL เพื่อให้สามารถล็อกอินระยะไกลผ่าน ssh โดยใช้.pemไฟล์ที่รหัสผ่าน

ฉันสามารถสร้างรหัสเช่นเดียวกับ.crtและ.pemไฟล์โดยใช้ต่อไปนี้

sudo openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

แต่ปัญหาคือที่ที่ฉันต้องวางไว้ที่ฝั่งเซิร์ฟเวอร์หรือการเปลี่ยนแปลงใดที่ฉันต้องทำใน/etc/ssh/sshd_configไฟล์เพื่ออนุญาตให้ล็อกอินระยะไกลผ่าน ssh โดยใช้.pemไฟล์

ฉันต้องการให้ลูกค้าเชื่อมต่อเครื่องของฉันในลักษณะดังต่อไปนี้

ssh -i server_crt.pem username@my_ip

การเปลี่ยนแปลงอะไรที่ฉันต้องทำเพื่อการนำไปใช้

ขอบคุณ

คำตอบ:


18

ก่อนอื่นคุณต้องอัปโหลดกุญแจสาธารณะไปยังเซิร์ฟเวอร์ที่คุณต้องการเชื่อมต่อด้วยรหัสสาธารณะอยู่ในไฟล์. pub:

ตัวอย่าง:

# ssh-copy-id -i ~/my-certificate.pub root@12.34.56.78

หลังจากนี้ควรใช้งานได้และคุณควรเข้าสู่ระบบโดยใช้:

$ sudo ssh -i ~/my-certificate.pem root@12.34.56.78

การเปลี่ยนแปลงเกิดขึ้นในไฟล์ ~ / .ssh / authorized_keys บนเครื่องเซิร์ฟเวอร์เปิดด้วยโปรแกรมแก้ไขข้อความเช่น nano คุณจะเห็นบรรทัดที่ขึ้นต้นด้วยบางสิ่งเช่น: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAX ...

ฉันสร้างไฟล์คีย์โดยใช้ $ ssh-keygen -t rsa -b 2048 -v ซึ่งสร้างไฟล์. pem และ pub เมื่อคุณถูกถาม:

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

ป้อนชื่อของไฟล์. pem ตัวอย่างเช่น: my-certificate.pem

ทีละขั้นตอนจากการสร้างคีย์เพื่อเข้าสู่ระบบ:

  1. สร้างคีย์ด้วย$ ssh-keygen -t rsa -b 2048 -vและเมื่อถูกขอให้ป้อนไฟล์ที่จะบันทึกคีย์พิมพ์my-certificateและเมื่อถูกขอให้ป้อนข้อความรหัสผ่านให้กด Enter (ข้อความรหัสผ่านว่างเปล่า) และยืนยันโดย Enter
  2. คุณจะได้รับสองไฟล์ที่สร้างขึ้นหนึ่งไฟล์จะเป็นใบรับรองของฉันและอีกหนึ่งไฟล์จะเป็น my-certificate.pub ให้เปลี่ยนชื่อใบรับรองของฉันเป็น my-certificate.pem ดังนั้นคุณจะมีสองไฟล์คือ my-certificate.pub และ my- certificate.pem
  3. อัปโหลดใบรับรองสาธารณะไปยังเซิร์ฟเวอร์: ssh-copy-id -i ~/my-certificate.pub username@ip
  4. ทำให้ไฟล์. pem บนคอมพิวเตอร์ของคุณเป็นแบบอ่านอย่างเดียว sudo chmod 400 my-certificate.pem
  5. เข้าสู่ระบบด้วย $ sudo ssh -i /path/to/my-certificate.pem user@ip

1
หลังจากทั้งหมดฉันได้รับข้อผิดพลาด 'สิทธิ์ถูกปฏิเสธ (publickey)' และฉันไม่สามารถเชื่อมต่อได้
Farman Ali

สวัสดีเพื่อความปลอดภัยไฟล์. pem ของคุณไม่ควรเขียนได้ใช้ sudo chmod 400 my-certificate.pem บนเครื่องของคุณแล้วลองใหม่อีกครั้ง
Mike

สวัสดีฉันเปลี่ยนเป็น 400 แต่ปัญหายังคงเหมือนเดิม คุณช่วยอธิบายการทำงานทั้งหมดทีละขั้นตอนจากการสร้างรหัสเพื่อเชื่อมต่อจากลูกค้า
Farman Ali

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