SCP จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งโดยไม่มีรหัสผ่านแจ้ง


19

วิธีที่ดีที่สุดในการทำอะไรscpจากช่องหนึ่งไปยังอีกช่องหนึ่งโดยไม่ต้องใส่รหัสผ่าน?

มีเซิร์ฟเวอร์สองเครื่อง:

  • เซิร์ฟเวอร์ A (10.152.2.10): /home/oracle/export/files.txt

  • เซิร์ฟเวอร์ B (10.152.2.11): /home/oracle/import/

หากฉันต้องการถ่ายโอนไฟล์โดยใช้scpจากเซิร์ฟเวอร์ A ไปยังเซิร์ฟเวอร์ B โดยไม่ได้รับแจ้งให้ป้อนรหัสผ่าน

[เรียกใช้จากเซิร์ฟเวอร์ A /home/oracle/export/]

scp files.txt oracle@10.152.2.11:/home/oracle/import

นี่จะขอให้ฉันใส่รหัสผ่านเมื่อป้อนคำสั่ง

ฉันเข้าใจว่าต้องมีการสร้าง keygen และคัดลอกไปยังเซิร์ฟเวอร์ A ดังนั้น [at server A]:

ssh-keygen -t rsa

สิ่งนี้ทำให้ฉันเก็บไฟล์สองไฟล์ไว้ใน/home/oracle/.ssh:

id_rsa
id_rsa.pub

1. ฉันควรจะคัดลอกสองไฟล์ ( id_rsa, id_rsa.pub) ไปยังเซิร์ฟเวอร์ B /home/oracle/.sshหรือไม่

ขณะทำการค้นหาด้วย google ในบทความนี้บางบทความได้กล่าวถึงการผนวก / ต่อข้อมูลนี้เข้ากับ authorized_keys

2. ฉันควรจะสร้างไฟล์นี้ด้วยตัวเองหรือไม่?

ฉันดูเหมือนจะสับสนในสิ่งที่เป็นวิธีที่เหมาะสมในการทำเช่นนี้

Btw เซิร์ฟเวอร์ทั้งสองกำลังใช้งาน Suse Linux Enterprise Edition 9 ...


1
ลอง 'keychain': gentoo.org/proj/en/keychain

คำตอบ:


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

11

ssh-copy-idนอกจากนี้ยังมีเครื่องมือที่จะเรียงลำดับทั้งหมดนี้สำหรับคุณเรียกว่า

มันจะผนวกคีย์ในเอเจนต์ของคุณหากคุณมีหนึ่งauthorized_keysไฟล์ที่ทำงานและสร้างมันหากไม่มีอยู่ด้วยสิทธิ์ที่ถูกต้อง หากคุณไม่ได้เรียกใช้ตัวแทนคุณสามารถระบุรหัสที่จะส่งด้วย-i:ssh-copy-id -i ~/.ssh/id_rsa


5

คุณควรตรวจสอบการอนุญาตในไฟล์และไดเรกทอรีต่าง ๆ :

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

ไดเรกทอรีบ้านของคุณจะต้องไม่สามารถเขียนได้โดยบุคคลอื่นที่ไม่ใช่คุณ


0

ในกรณีที่คุณกำหนดค่ารหัสที่สร้างขึ้นssh-keygenแต่ยังคงรหัสผ่านน้อยกว่าการถ่ายโอนไม่ทำงานจากนั้นตรวจสอบรหัสสาธารณะที่ใช้กับเครื่องต้นทางในคำสั่งโหมด verbose ดังนี้

sftp -v -oPort=22 userid@server

มักจะหมายถึงกุญแจสาธารณะที่ซึ่งอาจจะแตกต่างจากคนที่คุณสร้างขึ้นโดยใช้/home/<user>/.ssh/id_rsa.pub ssh-keygenคุณต้องเพิ่มสิ่งนี้id_rsa.pubที่เซิร์ฟเวอร์ปลายทาง


0

ฉันจะทำต่อไปนี้:

เกี่ยวกับลูกค้า:

ssh-keygen -t rsa
ssh-copy-id oracle@10.152.2.11

นี่เป็นการคัดลอกคีย์จากไคลเอนต์ไปยังเซิร์ฟเวอร์ คุณจะต้องใช้รหัสผ่านของเซิร์ฟเวอร์เพื่อให้มันเพิ่มกุญแจของคุณเพื่อแหวน

  • ต้องมีการตรวจสอบรหัสผ่านหรือคุณต้องส่ง keyfile ไปยังเซิร์ฟเวอร์

บนเซิร์ฟเวอร์:

อย่างน้อยที่สุดฉันจะต้องปิดการตรวจสอบรหัสผ่าน

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