วิธี SSH ไปยัง EC2 โดยไม่ต้องใช้คีย์ pem อย่างชัดเจนหรือไม่


21

ฉันมีหน้าต่างเป็นระบบปฏิบัติการหลักของฉัน เมื่อใช้เครื่องเล่น VMware ฉันตั้งค่าเซิร์ฟเวอร์ Ubuntu 12.4 เป็นเครื่องแขก เซิร์ฟเวอร์ Ubuntu มีผู้ใช้ "อูบุนตู"

ฉันสร้างคีย์ ECT ใหม่ + การตั้งค่ากุญแจ จากเครื่อง windows เมื่อฉันใช้ putty + pem key - ฉันสามารถ ssh

ฉันเพิ่มคีย์ pem ไปยังเซิร์ฟเวอร์ VMware Ubuntu (/home/ubuntu/.ssh/) นอกจากนี้ฉันได้ตั้งค่าการอนุญาตต่อไปนี้: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

ผ่านเซิร์ฟเวอร์อูบุนตู - ฉันพยายามที่จะ SSH ไปยังอินสแตนซ์ของ ec2 โดยไม่ประสบความสำเร็จ: ssh ubuntu@EC2_IP Permission denied (publickey) . หากฉันใช้คีย์ pem อย่างชัดเจนมันจะทำงาน: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - โปรดทราบว่าฉันต้องใช้เส้นทางตรงไปยังกุญแจมิฉะนั้นฉันจะได้รับ Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

กรุณาแนะนำ ขอบคุณ!

คำตอบ:


18

โดยค่าเริ่มต้น SSH ลูกค้าจะมองหากุญแจชื่อid_rsa, id_dsaและในid_ecdsa ~/.ssh/หากคีย์ของคุณไม่มีชื่อเหมือนที่คุณต้องระบุไว้ในบรรทัดคำสั่งด้วย-iในขณะที่คุณกำลังทำหรือระบุในการกำหนดค่าไคลเอนต์

คุณสามารถเพิ่มสิ่งนี้เป็น~/.ssh/configเพื่อเลือกปุ่มนี้โดยอัตโนมัติเมื่อ SSHing to EC2:

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa


2

คุณตั้งชื่อคีย์ส่วนตัวอย่างไร มันควรมีชื่อไฟล์เริ่มต้น id_rsa (เปลี่ยนชื่อไฟล์ pem เป็น /home/ubuntu/.ssh/id_rsa)


มันเรียกว่า eldad.pem (ชื่อเริ่มต้นจาก AWS) ฉันเปลี่ยนชื่อเป็น id_rsa และใช้งานได้ มีวิธีการเก็บไว้ในชื่อปัจจุบันและยังคงใช้หรือไม่
user798562

ใช่ดาเนียลเขียนเกี่ยวกับเรื่องนี้ในคำตอบของเขาแล้ว :)
อังเดร Mikhaltsov

1

คุณสามารถใช้ssh-agentและssh-addเพื่อหลีกเลี่ยงการต้องระบุคีย์ส่วนตัวอย่างชัดเจน

คุณสามารถใส่คำสั่งในคำสั่งของคุณ.profileหรือ.bashrcเพื่อให้พวกเขาได้รับการดำเนินการทุกครั้งที่คุณเข้าสู่ระบบคุณสามารถค้นหาตัวอย่างสคริปต์เริ่มต้นที่ด้านล่างของโพสต์นี้


ฉันทำอย่างนั้น แต่เมื่อฉันรีบูท - ฉันต้องทำมันซ้ำอีกครั้ง มีวิธีใดบ้างที่จะหลีกเลี่ยงสิ่งนั้น?
user798562

แก้ไขคำตอบของฉันเพื่อรวมที่
David Levesque

0

ไคลเอ็นต์ SSH มองหาตั้งอยู่บนพื้นฐานการกำหนดค่าในidentify file /etc/ssh/ssh_configดังนั้นคุณสามารถระบุไฟล์ข้อมูลประจำตัวที่นั่นและจำไว้ว่าคุณสามารถมีไฟล์ข้อมูลประจำตัวหลายรายการในไฟล์กำหนดค่าไคลเอ็นต์ ssh จากหน้าคน ssh -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

สำหรับคีย์ RSA ตัวอย่างเช่นตำแหน่งเริ่มต้นคือ ~ / .ssh / id_rsa ตามที่ Andrei Mikhaltsov แนะนำคุณสามารถวางกุญแจส่วนตัวของคุณใน / home / ubuntu / ssh / id_rsa และจะสามารถเชื่อมต่อได้โดยไม่ต้องระบุที่บรรทัดคำสั่ง หากชื่อไฟล์นั้นมีอยู่แล้วและเก็บกุญแจส่วนตัวอื่นไว้คุณยังสามารถปรับแต่งไฟล์ปรับแต่งไคลเอนต์ ssh ได้ที่IdentityFileพารามิเตอร์

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