วิธีเลิกทำ ssh-copy-id


15

ฉันมีคลัสเตอร์ HASOBO 2 โหนด

ฉันรันคำสั่งนี้กับต้นแบบ:

$ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.1

ฉันจะยกเลิกสิ่งนี้ได้อย่างไร ฉันต้องการมอบหมายคีย์ใหม่จริง ๆ

192.168.1.1 เป็นทาส

คำตอบ:


20

ระบุคีย์สาธารณะที่คุณคัดลอกเมื่อคุณวิ่งssh-copy-id:

cat ~/.ssh/id_rsa.pub

SSH ไปยังเซิร์ฟเวอร์ที่คุณคัดลอกคีย์ไปที่:

ssh hadoop@192.168.1.1

แก้ไขไฟล์~hadoop/.ssh/authorized_keysบน192.168.1.1โดยใช้โปรแกรมแก้ไขที่คุณต้องการและลบบรรทัดที่มีสำคัญของคุณ


1
มีวิธีการทำโดยอัตโนมัติทำไม? กดไลค์ssh-rm-id hadoop@192.168.1.1
SR

@SR ฉันไม่ทราบคำสั่งเดียวที่ทำให้เป็นอัตโนมัติ ในทางทฤษฎีคุณสามารถ "ทำให้" ด้วยตัวคุณเองโดยใช้เพียงซับเดียวsshเพื่อใช้sedคำสั่ง (หรือคล้ายกัน) เพื่อแก้ไข~/.ssh/authorized_keysและลบบรรทัด ดูsuperuser.com/questions/429954/…
David Edwards

4

หากคุณทำสิ่งที่ssh-copy-idชอบ:

remote='user@machine'
ssh-copy-id -i $remote

ดังนั้นคุณสามารถเข้าถึงเครื่องระยะไกลนี้ได้โดยไม่ต้องใช้รหัสผ่าน:

ssh $remote

หากต้องการยกเลิกในลักษณะที่เป็นระบบคุณสามารถเขียนสคริปต์ดังนี้:

idssh=$(awk '{print $2}' ~/.ssh/id_rsa.pub)
ssh $remote "sed -i '#$idssh#d' .ssh/authorized_keys"

ฉันใช้มันในสคริปต์ฉันต้องการscpไฟล์หลายไฟล์ดังนั้นฉันจึงขอรหัสผ่านเพียงครั้งเดียว


1
นี่อาจเป็นอันตรายเล็กน้อย: คุณโลภสำหรับฟิลด์ข้อคิดเห็นของคีย์ เป็นสตริงที่ไม่มีความหมายใด ๆ และอาจมีมากกว่าหนึ่งครั้ง ฉัน grep ทั้งยาวAAA....==สตริง (คีย์จริง) id_rsa.pubหรือสำหรับสายที่สมบูรณ์จาก แต่ +1 สำหรับแสดงวิธีการลบคีย์โดยอัตโนมัติ
PerlDuck

1
@PerlDuck คุณถูกต้อง มันจะดีกว่าการใช้คีย์ ($ 2) มากกว่าฟิลด์ที่สาม ขอขอบคุณ.
Javi M.

@Javi M. ฉันพบปัญหาอื่น เครื่องหมายสแลชที่ใช้เป็นค่าเริ่มต้นเนื่องจากตัวคั่นใน sed อยู่ในรหัสสาธารณะของฉัน ด้วยเหตุนี้ฉันจึงพบว่าการใช้เซมิโคลอนเป็นตัวคั่น sed ดีที่สุดเนื่องจากไม่น่าจะปรากฏในคีย์สาธารณะ ในการทำเช่นนี้จำเป็นต้องหลีกเลี่ยงอักขระก่อน ฉันลงเอยด้วยบางสิ่งเช่นนี้:ssh $remote "sed -i '\;$idssh;{d}' .ssh/authorized_keys"
ccalvert

นี่คือข้อมูลบางส่วนที่ตัวละครสามารถลงท้ายด้วยคีย์สาธารณะ
ccalvert

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