จะเพิ่มคีย์ RSA ในไฟล์ Authorized_keys ได้อย่างไร?


93

ฉันได้สร้างคีย์สาธารณะ RSA แล้วและต้องการเพิ่มลงในauthorized_keysไฟล์ แต่ไม่มีไฟล์ดังกล่าวในเครื่อง Ubuntu 11.10 ของฉัน

ฉันจะเพิ่มคีย์เข้าไปได้authorized_keysอย่างไร?

คำตอบ:


110

ตรวจสอบให้แน่ใจว่าเมื่อเรียกใช้โซลูชันของ Michael Krelin คุณทำสิ่งต่อไปนี้

cat <your_public_key_file> >> ~/.ssh/authorized_keys

โปรดสังเกตว่า double ที่>ไม่มีคู่>เนื้อหาที่มีอยู่ของ Author_keys จะถูกเขียนทับ (nuked!) และอาจไม่เป็นที่ต้องการ


คุณต้องใส่วิธีการแสดงข้อมูลคีย์สาธารณะอย่างถูกต้องเพียงแค่คัดลอกและวางข้อมูลนั้นจะไม่ทำ ตัวอย่างเช่น:
einarc

4
คุณอธิบายได้ไหมว่าทำไมการคัดลอก / วางจึงใช้ไม่ได้? ฉันอยากรู้อยากเห็นอย่างจริงใจ
mcsilvio

โปรดจำไว้ว่าหากเรียกใช้ systemd เพื่อเริ่มบริการ ssh ไม่เช่นนั้นจะไม่ดูดคีย์ใหม่sudo systemctl restart sshdและจะไม่ทำงาน
Kes

52
mkdir -p ~/.ssh/

เพื่อเขียนทับ Author_keys

cat your_key > ~/.ssh/authorized_keys

เพื่อต่อท้ายส่วนท้ายของคีย์ที่ได้รับอนุญาต

cat your_key >> ~/.ssh/authorized_keys

ฉันได้สร้างคีย์ที่ฝั่งไคลเอ็นต์และคัดลอกคีย์นั้นไปยังเครื่องเซิร์ฟเวอร์ แต่ใช้คำสั่งssh 192.168.2.7ไม่อนุญาตให้เข้าสู่ระบบ
Raji AC

ไม่อนุญาตให้ล็อกอินพูดว่าอะไร?
Michael Krelin - แฮ็กเกอร์

เมื่อดำเนินการคำสั่งนี้จะขอรหัสผ่านของเซิร์ฟเวอร์ฉันต้องการการเข้าสู่ระบบแบบไม่ใช้รหัสผ่าน
Raji AC

id (ส่วน pub) อยู่ใน ~ / .ssh / authority_keys บนรีโมทหรือไม่ ssh ใช้ id (ส่วนที่ไม่ใช่ pub) เมื่อพยายามเข้าสู่ระบบหรือไม่ -iคุณสามารถลองระบุอย่างชัดเจนด้วย นอกจากนี้คุณสามารถลองssh -vและตรวจสอบสิทธิ์ของคีย์ที่ได้รับอนุญาตของคุณบนรีโมท และตรวจสอบบันทึกที่นั่น
Michael Krelin - แฮ็กเกอร์

เราจะตรวจสอบได้ไหมว่าเพิ่มคีย์แล้ว? เช่นเดียวกับที่ทำโดย ssh-copy-id สำหรับระบบระยะไกล
Dmitriusan

33

ฉันรู้ว่าฉันตอบช้าเกินไป แต่สำหรับใครก็ตามที่ต้องการสิ่งนี้ให้เรียกใช้คำสั่งต่อไปนี้จากเครื่องในพื้นที่ของคุณ

cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

สิ่งนี้ทำงานได้ดีอย่างสมบูรณ์ สิ่งที่คุณต้องทำมีเพียงแค่แทนที่

user@192.168.1.1

กับผู้ใช้ของคุณเองสำหรับโฮสต์นั้น ๆ


33

มีคำสั่งอยู่แล้วในชุด ssh ให้ทำสิ่งนี้ให้คุณโดยอัตโนมัติ คือเข้าสู่โฮสต์ระยะไกลและเพิ่มคีย์สาธารณะลงในไฟล์ Author_keys ของคอมพิวเตอร์เครื่องนั้น

ssh-copy-id -i /path/to/key/file user@host.com

หากคีย์ที่คุณกำลังติดตั้งอยู่~/.ssh/id_rsaคุณสามารถยกเลิกการ-iตั้งค่าสถานะทั้งหมดได้

ดีกว่าการทำด้วยตนเองมาก!


2
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.