วิธีการเชื่อมต่อกับ ssh ด้วยไดเรกทอรี. ssh


1

เพื่อนร่วมงานของฉันส่งไดเรกทอรี '.ssh' ให้ฉันพร้อมไฟล์ในนั้น เขาบอกว่าฉันสามารถใส่ไดเรกทอรีนั้นในไดเรกทอรีผู้ใช้ของฉันแล้วเชื่อมต่อกับ ssh โดยไม่ต้องใช้รหัสผ่าน (ssh root @ ip)

ฉันใส่ไดเรกทอรีนั้นในโฮมไดเร็กตอรี่ของฉันจากนั้นลองใช้ ssh root @ ip, แต่มันไม่ทำงาน

ฉันพลาดอะไรไปรึเปล่า?


ls -l ~/.sshกรุณาโพสต์การส่งออกของ
Eduardo Ivanec

6
ฉันไม่มีคำพูดใดที่แสดงว่ามันน่ากลัวขนาดนี้ แจงนับ: 1. ส่งไดเรกทอรี. ssh ไปรอบ ๆ (ซึ่งมีคีย์ส่วนตัว ); 2. นั่นคือการเชื่อมต่อโดยไม่มีรหัสผ่านซึ่งหมายความว่าคุณมีคีย์ที่ไม่มีการป้องกันคีย์รหัสผ่านที่น้อยกว่าแทนที่จะใช้ ssh-agent 3. นั่นสำหรับบัญชีรูท โปรดเรียนรู้วิธีการใช้ SSH อย่างถูกต้อง
Juliano

คำตอบ:


5

สองสิ่งที่นี่

1) ผู้ร่วมงานของคุณส่งไดเรกทอรี. ssh (ความคิดที่น่ากลัว btw แต่นั่นเป็นปัญหาอื่น .. ) ข้างในที่นี่มีไฟล์ชื่อว่า authorized_keys ซึ่งเก็บกุญแจ "SSH Public keys" หนึ่งคีย์หรือมากกว่านั้น "การเชื่อมต่อที่ไม่มีข้อความรหัสผ่าน" ที่เขากำลังพูดถึงเกิดขึ้นเมื่อคุณเชื่อมต่อและเสนอคีย์ส่วนตัวและระบบรับรู้คีย์สาธารณะที่ตรงกันใน. ssh / authorized_keys หากคุณไม่ได้บอกว่าคีย์ส่วนตัวของ ssh แสดงว่าโฟลเดอร์นี้ไม่มีประโยชน์ คีย์นี้ต้องอยู่ในฝั่งไคลเอ็นต์ไม่ใช่ฝั่งเซิร์ฟเวอร์ ดูข้างในโฟลเดอร์. ssh มีไฟล์ id_rsa ไหม? ถ้าเป็นเช่นนั้นคัดลอกไปยังลูกค้าของคุณและโหลดขึ้นภายใน Pagent หรือภายในฉาบ

2) คุณบอกว่าคุณวางสิ่งนี้ไว้ในโฮมไดเร็กตอรี่ของคุณสมมติว่า / home / Moon ตอนนี้คุณพยายามเข้าสู่ระบบในฐานะ root @ ip

SSH จะมองเข้าไปใน /root/.ssh/ สำหรับไฟล์ที่ไม่ได้ /home/moon/.ssh/ เพราะคุณพยายามที่จะเข้าสู่ระบบในฐานะรากไม่เป็นดวงจันทร์ ขึ้นอยู่กับ distro ของคุณคุณสามารถเข้าสู่บัญชีของคุณเองและ sudo หรือ su เพื่อรูต การใส่รหัสผ่านที่ไม่ใช้วลีสำหรับรูทเป็นสิ่งที่น่ากลัวทุกชนิด

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

หากคุณต้องการทำสิ่งนี้ด้วยตนเองและทำอย่างถูกต้องทำดังต่อไปนี้

  1. เข้าสู่ระบบในฐานะผู้ใช้ปกติของคุณในคำสั่ง

    ssh-keygen -t rsa

  2. ทำตามคำแนะนำเลือกค่าเริ่มต้นสำหรับทุกอย่าง (ฉันแนะนำให้คุณใส่รหัสผ่านสำหรับกุญแจของคุณ)

  3. คัดลอกกุญแจสาธารณะของคุณไปยังไฟล์คีย์ที่ได้รับอนุญาตลบเนื้อหาเก่า

    cat ~ / .ssh / id_rsa.pub> ~ / .ssh / authorized_keys

  4. คัดลอกไฟล์ ~ / .ssh / id_rsa ไปยังคอมพิวเตอร์ไคลเอนต์ของคุณโดยใช้ Pagent, Putty, ssh -i หรือตัวจัดการคีย์อื่น ๆ โหลด / เปิด id_rsa ตอนนี้ SSH ไปยังชื่อผู้ใช้ของคุณ @ ip และคุณไม่จำเป็นต้องแจ้ง


0

ไดเร็กทอรี. ssh ควร (หากเพื่อนร่วมงานของคุณทำอย่างถูกต้อง) มีพับลิกคีย์ซึ่งคุณต้องเพิ่มลงในไฟล์คีย์ที่ได้รับอนุญาตของคุณ เปิดเทอร์มินัลและประเภท
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(นั่นอาจไม่ใช่คำสั่งที่ถูกต้องไดเรกทอรีที่คุณส่งควรมีไฟล์. pub หนึ่งไฟล์, cat นั้นแทนอะไรก็ตามที่เรียกว่า)
คุณควรจะแนะนำพวกเขาด้วยว่าการส่งไดเรกทอรี SSH ทั้งหมดเป็น ความคิดที่ไม่ดีมากสำหรับสิ่งหนึ่งที่คุณมีกุญแจส่วนตัวของเขา คีย์ที่ได้รับอนุญาตก่อนหน้านี้หรือโฮสต์ที่รู้จักถูกเขียนทับพวกเขาควรเพิ่งส่งไฟล์ id_rsa.pub ให้คุณ
หรือมิฉะนั้น sshd ของคุณอาจไม่ได้รับการกำหนดค่าให้อนุญาตการตรวจสอบความถูกต้องของคีย์โปรดดูเอกสารสำหรับคำแนะนำเฉพาะเกี่ยวกับวิธีการทำเช่นนี้


0

ความเป็นไปได้อีกอย่าง: ขึ้นอยู่กับวิธีที่คุณแตกไดเร็กทอรี. ssh คุณอาจไม่ได้เป็นเจ้าของไฟล์ที่คุณสร้างขึ้น (ซึ่งเป็นสิ่งที่จำเป็นสำหรับเวอร์ชันส่วนใหญ่ของ ssh ที่จะเชื่อมต่อ) ลองและchown -R $USER. ~/.sshchmod -R g-rwx,o-rwx ~/.ssh

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