คัดลอกคีย์ส่วนตัว ssh ไปยังคอมพิวเตอร์เครื่องอื่น


52

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

ฉันใช้คีย์เข้ารหัส ssh ฉันสามารถคัดลอกคีย์เหล่านี้ไปยังคอมพิวเตอร์เครื่องใหม่ (ซึ่ง vpn ทำงานได้) ฉันพยายามคัดลอกid_rsaและid_rsa.pubไฟล์ใน~/.sshโฟลเดอร์ แต่ไม่รู้จักปุ่มและไม่มีการแจ้งให้ป้อนรหัสผ่านเพื่อถอดรหัสคีย์

แก้ไข: ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์เพื่อสร้างคู่คีย์ใหม่สำหรับคอมพิวเตอร์เครื่องใหม่และอยู่นอกประเทศจึงไม่สามารถเข้าถึงได้

ขอบคุณ


" id_rsh" พิมพ์ผิดหรือไม่
ændrük

1
ssh -v -i ~/.ssh/id_rsa ssh-serverคุณอาจจะเรียนรู้เพิ่มเติมเกี่ยวกับปัญหาที่เกิดขึ้นโดยพยายาม
ændrük

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

ไม่ควรคัดลอกกุญแจส่วนตัว! นี่คือความเสี่ยงด้านความปลอดภัย สร้างปุ่มใหม่สำหรับอุปกรณ์ใหม่ทุก !!!!
อีเธอร์

คำตอบ:


66

ตรวจสอบการอนุญาตและความเป็นเจ้าของของไฟล์กุญแจส่วนตัวของคุณ จากคู่มือการใช้งาน ,

ไฟล์เหล่านี้มีข้อมูลที่ละเอียดอ่อนและผู้ใช้ควรอ่านได้ แต่ไม่สามารถเข้าถึงได้โดยผู้อื่น (อ่าน / เขียน / ดำเนินการ) ssh จะเพิกเฉยต่อไฟล์กุญแจส่วนตัวหากผู้อื่นสามารถเข้าถึงได้

โดยทั่วไปไฟล์สำคัญควรมีลักษณะเช่นนี้

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

ซึ่งคุณสามารถบังคับใช้ผ่าน:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub

2
ขอบคุณ มีประโยชน์ที่จะรู้ เมื่อคุณคัดลอกไฟล์ไปยังคอมพิวเตอร์เครื่องอื่นการอนุญาตดูเหมือนจะเปลี่ยนเป็นผู้ใช้รายนั้น ฉันวิ่งสคริปต์ chmod และ chown ในกรณี น่าเสียดายที่มันไม่ได้ช่วยแก้ไขปัญหาของฉัน
benj

@John ツนี่อาจเป็นส่วนหนึ่งของปัญหาสำหรับฉัน แต่ดูเหมือนจะมีปัญหาอื่น ๆ ในที่สุดฉันก็มีคนเข้าสู่ระบบเซิร์ฟเวอร์และตั้งค่ารหัสใหม่ แต่จะยอมรับสิ่งนี้เนื่องจากอาจครอบคลุมประเด็นสำคัญ
benj

มันใช้งานได้สำหรับฉัน @benj
Sinthia V

14

ลองใช้ssh-addก่อนที่คุณจะ SSH ในเซิร์ฟเวอร์ - จากนั้นคุณควรได้รับพร้อมท์สำหรับรหัสผ่านและจากนั้นการsshเชื่อมต่อที่ตามมาสามารถใช้คีย์ส่วนตัวของคุณ

ssh-addคำสั่งเพิ่มกุญแจที่จะเป็นตัวแทนที่สำคัญ


1
ฉันไม่คิดว่านี่เป็นปัญหาเนื่องจาก 1) ไคลเอนต์ SSH สามารถรับมือได้โดยไม่ต้องใช้คีย์เอเจนต์ที่ใช้งานได้ 2) เซิร์ฟเวอร์จะไม่ตอบกลับด้วยข้อความ "ไม่อนุญาตการข้ามเครือข่าย" และ 3) ไคลเอ็นต์ ssh จะเป็นของตัวเอง เกิดข้อผิดพลาดเมื่อพูดคุยกับตัวแทนที่สำคัญล้มเหลวในบางวิธี ผมได้ทำความคิดของฉันเกี่ยวกับมันคำตอบ
gertvdijk

นี่เป็นการแก้ไขปัญหาสำหรับฉัน ยังเห็นเอกสาร Github สำหรับเรื่องนี้
IonicăBizău

8

คีย์ส่วนตัวเข้ารหัสถือที่สอดคล้องกันของพวกเขาคีย์สาธารณะที่ไม่ได้เข้ารหัส นี่คือวิธีที่ไคลเอ็นต์ SSH สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้โดยไม่ต้องขอรหัสผ่านจากคุณ (จะให้เฉพาะส่วนสาธารณะ ณ จุดนั้น) เมื่อใดก็ตามที่เซิร์ฟเวอร์ยอมรับรหัสสาธารณะไคลเอ็นต์บนพีซีของคุณต้องการถอดรหัสรหัสส่วนตัวและจะขอรหัสผ่านสำหรับคุณ

ตอนนี้เมื่อใดก็ตามที่เซิร์ฟเวอร์ยอมรับการเชื่อมต่อจากที่อยู่ IP ที่เฉพาะเจาะจงสิ่งนี้จะถูกปฏิเสธในขั้นตอนแรกและอธิบายข้อความที่คุณได้รับจากเซิร์ฟเวอร์ "ไม่อนุญาตการข้ามเครือข่ายโดยเซิร์ฟเวอร์"

ดังนั้นการคาดเดาที่ดีที่สุดของฉันคือเซิร์ฟเวอร์ของคุณถูก จำกัด ด้วยวิธีการอนุญาตเฉพาะที่อยู่ IP ที่เฉพาะเจาะจงสำหรับคีย์นี้ คุณสามารถทำได้หลายวิธี แต่วิธีนี้เป็นวิธีปกติใน~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

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

ssh-keygen -y -f /path/to/private/key

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