ฉันจะตั้งค่า SSH ได้อย่างไรโดยไม่ต้องพิมพ์รหัสผ่าน


153

ฉันจะตั้งค่า SSH ได้อย่างไรฉันจึงไม่ต้องพิมพ์รหัสผ่านเมื่อเชื่อมต่อกับโฮสต์


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

ใน Cygwin ล่าสุดที่มี SSH ล่าสุดฉันได้รับการแจ้งเตือนอีกครั้งเพราะฉันต้องการเปลี่ยนแปลงสิ่งที่ฉัน~/.ssh/configต้องการในตอนนี้ PubkeyAcceptedKeyTypes ssh-rsa*,ssh-dss*
HDave

คำตอบ:


164

สร้างคีย์ SSH (ถ้าคุณไม่มี)

หากคุณเกิดขึ้นที่จะใช้ GNOME ที่ซีฮอร์แอพลิเคชัน ( "รหัสผ่านและคีย์การเข้ารหัสลับ") สามารถทำมันสำหรับคุณ: ไฟล์ -> New -> Secure Shell สำคัญ

หากคุณต้องการเทอร์มินัลให้รันเพื่อสร้างคู่คีย์ ประเภท keypair ที่ถูกต้องคือ:ssh-keygen -t <type>

  • rsa: ค่าเริ่มต้น
  • dsa: เทียบเท่ามากกว่าหรือน้อยกว่ายกเว้นถูก จำกัด ไว้ที่ 1024 บิตคีย์
  • ecdsa: ความปลอดภัยเดียวกันกับคีย์ขนาดเล็ก แต่ค่อนข้างใหม่และค่อนข้างหายากในซอฟต์แวร์ SSH
  • ed25519: ความปลอดภัยสูง (ทนต่อการโจมตีจากช่องทางด้านข้างและตัวสร้างหมายเลขสุ่มอ่อนกว่า) การสร้างลายเซ็นที่รวดเร็วมาก ใหม่มาก ใช้ได้เฉพาะในOpenSSH> = 6.5

โปรแกรมจะขอรหัสผ่านและตำแหน่งที่จะบันทึกคีย์ใหม่ แนะนำให้ใช้พา ธ เริ่มต้นที่แนะนำเนื่องจากเครื่องมืออื่น ๆ ทั้งหมดจะค้นหาที่นั่น

อัพโหลดกุญแจสาธารณะไปยังเซิร์ฟเวอร์ระยะไกล

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

หรือssh-copy-id -i ~/.ssh/id_rsa.pub remote-user@remote-hostในอาคารผู้โดยสาร

หรือด้วยตนเองทีละขั้นตอน:

  1. สร้างไดเรกทอรี (หากยังไม่มีอยู่) ที่ตั้งชื่อ.sshไว้ในโฮมไดเร็กทอรีของผู้ใช้รีโมตบนรีโมตโฮสต์
  2. ในไดเรกทอรีนั้นให้สร้างไฟล์ชื่อauthorized_keys(หากยังไม่มีอยู่)
  3. ในกรณีที่ระยะไกลของคุณเป็นเสรีนิยมมากขึ้นกว่าปกติทำให้ไฟล์ไม่กลุ่มเขียน:umaskchmod go-w ~/.ssh ~/.ssh/authorized_keys
  4. ในที่สุดก็คัดลอก (ผนวก) เนื้อหาของกุญแจสาธารณะในท้องถิ่นของคุณ( ~/.ssh/id_rsa.pub) ลงใน~/.ssh/authorized_keysไฟล์ระยะไกล

โหลดคีย์ลงในตัวแทน ssh

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

ขั้นแรกเอเจนต์ต้องเริ่มทำงานหรือพา ธ ของซ็อกเก็ตการสื่อสารที่เรียกใช้งานถูกโหลดเข้าสู่ตัวแปร การรันssh-agentบนเทอร์มินัลจะสร้างคำสั่งสำหรับการกำหนดและตั้งค่าตัวแปรเอเจนต์ คำสั่งเหล่านี้สามารถบันทึกในไฟล์เพื่อใช้ในเทอร์มินัลอื่น อีกวิธีหนึ่งสามารถเรียกใช้คำสั่งเหล่านี้และลืมเกี่ยวกับการใช้ตัวแทนเดียวกันในเทอร์มินัลอื่นอีกครั้ง eval $(ssh-agent)เช่น:

การโหลดกุญแจเป็นเรื่องง่าย ๆ ในการดำเนินการssh-addและให้วลีรหัสผ่าน

หากคุณใช้ GNOME gnome-keyring-daemonมักจะมีฟังก์ชั่นเอเจนต์ SSH เหมือนกับ ssh-agent ดังนั้นคุณไม่จำเป็นต้องเริ่มต้นอะไรเลย GNOME จะโหลดและปลดล็อคกุญแจอัตโนมัติเมื่อเข้าสู่ระบบด้วย

เชลล์ลงในเซิร์ฟเวอร์ระยะไกลโดยไม่มีรหัสผ่าน

หากทุกอย่างทำอย่างถูกต้องการใช้จะไม่พร้อมท์ให้คุณใส่รหัสผ่าน หากมีบางอย่างผิดปกติกับตัวแทนและไม่ใช่กุญแจคุณจะถูกขอให้พิมพ์วลีรหัสผ่านสำหรับกุญแจไม่ใช่รหัสผ่านสำหรับบัญชีผู้ใช้ssh user@server

สิ่งที่ใช้ ssh เพื่อการสื่อสารจะทำงานโดยไม่ต้องป้อนรหัสผ่านบัญชีผู้ใช้เมื่อโหลดรหัสที่ถูกต้องในเอเจนต์ โปรแกรมเช่นscp , sftpและrsyncใช้ประโยชน์จากสิ่งนี้


หมายเหตุ:

  • คุณต้องการคีย์ SSHv2 เท่านั้นเนื่องจาก SSHv1 ไม่ปลอดภัยมากและไม่ได้ใช้งานในขณะนี้
  • คุณต้องใช้คีย์เพียงประเภทเดียวเท่านั้น - RSA หรือ DSA ก็เพียงพอแล้ว (ed25519 และ ECDSA เป็นทั้งล่าสุดและไม่รองรับทุกที่)
  • ขั้นตอนเหล่านี้เหมือนกันสำหรับทั้งคีย์ RSA และ DSA ถ้าคุณใช้ DSA ใช้id_dsaแทนid_rsaและ ECDSA id_ecdsaจะมี
  • เซิร์ฟเวอร์ OpenSSH ที่เก่ากว่า 3.0 ที่ใช้authorized_keys2- แต่ไม่น่าเป็นไปได้ที่คุณจะพบสิ่งที่มีอายุมากกว่า 5.0
  • คำแนะนำเหล่านี้ใช้สำหรับ OpenSSH เวอร์ชั่น 3.0 ขึ้นไปเท่านั้น lsh, ssh.comและอื่น ๆ (Unix และไม่ใช่) เซิร์ฟเวอร์ SSH ไม่รวมอยู่ในบทช่วยสอนนี้

ตัวอย่าง:

  • การคัดลอกกุญแจสาธารณะไปยังโฮสต์ระยะไกล:

    ssh-copy-id -i ~ / .ssh / id_rsa.pub myaccount @ remotehost # สิ่งนี้
    
    cat ~ / .ssh / id_rsa.pub | ssh myaccount @ remotehost \
          'mkdir -p ~ / .ssh; cat >> ~ / .ssh / authorized_keys '# หรือสิ่งนี้
    
  • การบันทึกตัวแปรเอเจนต์เพื่อนำกลับมาใช้ใหม่(ตัวอย่างที่ซับซ้อน)
    ssh-agent> ~ / .ssh / cross-terminal-agent
    . ~ / .ssh / ข้ามขั้วตัวแทน
    

7
อ่าคุณต้องพูดว่า "ssh-add {path-to-private-key-file}" แล้วมันจะขอรหัสผ่านของคุณ โปรดระบุให้ชัดเจนยิ่งขึ้นในโพสต์ของคุณ คุณควรเพิ่ม "Fourth, run ssh" ส่วนหนึ่งของปัญหาเกี่ยวกับเอกสารของสิ่งนี้คือมันคัดสรรขั้นตอนที่ดูเหมือนจะไม่ชัดเจนสำหรับบางคนที่เพิ่งรู้จักกับกระบวนการที่ไม่รู้ว่าเกิดอะไรขึ้นและโปรแกรมเหล่านี้ทำงานร่วมกันอย่างไร
35432 Jason Jason S

1
Jason: ssh-add -l คือการตรวจสอบว่าตัวแทนกำลังทำงานอยู่หรือไม่ ssh-add ที่ไม่มีอาร์กิวเมนต์จะเพิ่มคีย์จากตำแหน่งเริ่มต้น (ซึ่งคือ ~ / .ssh / id_rsa) อย่างไรก็ตามปรับปรุง
grawity

4
มีคำสั่งssh-copy-idที่คัดลอกกุญแจสาธารณะไปยังโฮสต์เป้าหมายและกำหนดสิทธิ์โดยอัตโนมัติ
hasen

1
คำตอบที่ดี! มันหายไปเล็กน้อยเกี่ยวกับการอนุญาตไฟล์ของไฟล์คีย์ - ฉันเพิ่งมีปัญหาเกี่ยวกับการที่วันนี้ ไฟล์ส่วนตัวของฉันควรจะสามารถเข้าถึงได้โดยฉันเท่านั้นและไฟล์กุญแจสาธารณะควรจะเขียนได้โดยฉันเท่านั้น
ripper234

1
หนึ่งซับ: ssh-keygen -f ~/.ssh/id_rsa -N "";ssh-copy-id -i ~/.ssh/id_rsa username@server-ip-or-address(เพียงแทนที่username@server-ip-or-address)
totymedli

22

คุณไม่ได้ระบุว่าคุณใช้ยูนิกซ์อะไรยูนิกซ์ที่คุณกำลังเชื่อมต่อเปลือกหอยที่คุณกำลังใช้ตัวแปร SSH ที่คุณใช้เป็นต้นดังนั้นสิ่งนี้อาจจำเป็นต้องปรับเปลี่ยนเล็กน้อย สิ่งนี้ขึ้นอยู่กับ OpenSSH เวอร์ชั่นล่าสุดซึ่งใช้กับยูนิกซ์หลายรุ่น

ทั้งหมดนี้มาจากระบบเดสก์ท็อปของคุณ

ssh-keygen

ตรวจสอบให้แน่ใจว่าใช้ค่าเริ่มต้นสำหรับชื่อคีย์ ผมขอแนะนำให้คุณทำตั้งข้อความรหัสผ่านในการสำคัญที่มิฉะนั้นมันเป็นปัญหาด้านความปลอดภัย "-t rsa" จะไม่ใช่ความคิดที่ดี แต่อาจไม่จำเป็น

ssh-copy-id username@server

ซึ่งจะขอรหัสผ่านที่คุณใช้ในการเข้าสู่ระบบและตั้งค่ารหัสที่ได้รับอนุญาตสำหรับคุณ (ไม่จำเป็นต้องทำด้วยมือ)

จากนั้นสิ่งนี้:

`ssh-agent`

หรือบางทีนี่:

exec ssh-agent sh

หรือ:

exec ssh-agent bash

ที่จะเริ่มต้นตัวแทน SSH ที่สามารถถือกุญแจของคุณ ในรุ่น Unix ที่ทันสมัยหลายรุ่นหากคุณลงชื่อเข้าใช้แบบกราฟิกสิ่งนี้จะเกิดขึ้นแล้ว ตัวแปรแรก (ที่มี backticks) ทำให้เอสเอส - เอเจนต์เข้าไปในพื้นหลังและตั้งค่าตัวแปรสภาพแวดล้อมเพื่อพูดคุยกับมัน สองอันที่สองมีเอเจนต์รันเชลล์สำหรับคุณดังนั้นเมื่อคุณออกจากเชลล์เอเจนต์จะออก

ระบบปฏิบัติการยูนิกซ์สมัยใหม่หลายรุ่นจะมีเอเจนต์ทำงานอยู่แล้วโดยเฉพาะอย่างยิ่งถ้าคุณลงชื่อเข้าใช้แบบกราฟิก คุณอาจลอง " ps aux | grep ssh-agent" หรือ " ps -ef | grep ssh-agent"; หากมีบางสิ่งกำลังทำงานอยู่ให้ใช้สิ่งนั้น

จากนั้นในที่สุด:

ssh-add

มันจะขอข้อความรหัสผ่าน; ให้สิ่งที่คุณให้กับ ssh-keygen นอกจากนี้ยังมีวิธีที่จะทำให้มันถามกราฟิก และคุณสามารถวางสิ่ง ssh-agent และ ssh-add ลงในสคริปต์การเข้าสู่ระบบของคุณ (การตั้งค่าแตกต่างกันขึ้นอยู่กับเชลล์ที่คุณใช้) เพื่อทำสิ่งนี้โดยอัตโนมัติ แต่ Unix บางตัว (เช่น Ubuntu Linux ปัจจุบัน) ทำสิ่งเหล่านั้นโดยอัตโนมัติ สิ่งที่คุณต้องทำคือสร้างคีย์และใช้ ssh-copy-id เพื่อตั้งค่าบนรีโมตโฮสต์

ตอนนี้ " ssh username@server" ควรทำงานโดยไม่ต้องขอการรับรองความถูกต้องใด ๆ เบื้องหลังมันใช้กุญแจที่ตัวแทนเอสเอสถืออยู่และขอให้ตัวแทนทำกลเม็ดการเซ็นชื่อให้กับมัน


11

เป็นไปได้ที่จะทำเช่นนี้ในPuTTYบน Windows เช่นกัน

เมื่อคุณมีคู่คีย์สาธารณะ / ส่วนตัวตั้งค่าทั้งหมด (ตามคำตอบอื่น ๆ ที่นี่แสดง) เรียกใช้ PuttyGen ในนั้นโหลดคีย์ส่วนตัวที่มีอยู่ซึ่งคุณได้ตั้งค่าไว้แล้วบันทึกเป็นคีย์ส่วนตัว PuTTY (ppk)

จากนั้นใน PuTTY เพียงคลิกที่เซสชันที่บันทึกไว้ซึ่งคุณต้องการลงชื่อเข้าใช้อัตโนมัติและคลิกโหลด จากที่นี่ไปที่การเชื่อมต่อ -> ข้อมูลในบานหน้าต่างด้านซ้ายและพิมพ์ "ชื่อผู้ใช้เข้าสู่ระบบอัตโนมัติ" ในชื่อผู้ใช้สำหรับเซิร์ฟเวอร์ระยะไกล:

รายการชื่อผู้ใช้ PuTTY

หลังจากนั้นไปที่การเชื่อมต่อ -> SSH -> รับรองความถูกต้องและเรียกดู ppk ที่คุณทำใน PuttyGen:

รายการคีย์ส่วนตัวของ PuTTY

จากนั้นกลับไปที่หน้าเซสชันและบันทึกเซสชันที่คุณโหลดไว้ก่อนหน้านี้


ลิงก์รูปภาพแรก "รายการชื่อผู้ใช้ PuTTY" ดูเหมือนจะใช้งานไม่ได้
Peter Mortensen

2
PuTTY มี ssh-agent เวอร์ชันของตัวเอง มันเรียกว่าประกวด มันทำงานในถาดระบบและถือกุญแจของคุณไว้สำหรับคุณ คุณไม่จำเป็นต้องเรียกใช้ ssh-agent เพียงตรวจสอบ "อนุญาตตัวแทนการส่งต่อ" ในตัวเลือกของ PuTTY ภายใต้หัวข้อ Auth และการเชื่อมต่อของ Pageant จะถูกส่งต่อไปยังปลายทางระยะไกลเพื่อให้ตัวแทนกุญแจของคุณพร้อมใช้งาน
Kevin Panko

3

จากคำถามที่คล้ายกันมากในServerFaultฉันขอแนะนำให้ใช้ssh-copy-idซึ่งทำทุกขั้นตอนที่เกี่ยวข้องกับการตั้งค่าคีย์การตรวจสอบสิทธิ์สำหรับคุณ:

ssh-copy-id เป็นสคริปต์ที่ใช้ ssh เพื่อเข้าสู่เครื่องระยะไกล (สมมุติว่าใช้รหัสผ่านการเข้าสู่ระบบดังนั้นการตรวจสอบรหัสผ่านควรจะเปิดใช้งานเว้นแต่ว่าคุณได้ใช้รหัสประจำตัวหลายอย่างอย่างชาญฉลาด)

นอกจากนี้ยังเปลี่ยนสิทธิ์ของโฮมของผู้ใช้ระยะไกล, ~ / .ssh และ ~ / .ssh / authorized_keys เพื่อลบการเขียนกลุ่ม (ซึ่งจะป้องกันมิให้คุณเข้าสู่ระบบหาก sshd ระยะไกลมีการตั้งค่า StrictModes ในการกำหนดค่า)

หากได้รับตัวเลือก -i ไฟล์ข้อมูลประจำตัว (ค่าเริ่มต้นคือ ~ / .ssh / identity.pub) จะถูกใช้โดยไม่คำนึงว่ามีคีย์ใด ๆ ใน ssh-agent ของคุณหรือไม่

สิ่งที่คุณต้องทำคือเพียงแค่นี้:

ssh-copy-id user@host

พิมพ์รหัสผ่านของคุณหนึ่งครั้งและคุณก็พร้อมใช้งาน


3

นอกเหนือจากที่ได้รับการบอกวิธีการตั้งค่าคีย์ ssh แล้วฉันขอแนะนำKeychainเป็นส่วนหน้าคอนโซลssh-agentซึ่งช่วยให้คุณสามารถจัดการหนึ่งต่อกระบวนการของระบบแทนการเข้าสู่ระบบต่อ

ฉันรู้ว่ามีเครื่องมือของ GNOME และ KDE อยู่แล้วที่ทำแบบเดียวกัน แต่ถ้าคุณเป็นประเภทขี้ยาคอนโซลนี่ยอดเยี่ยมมาก (และสามารถใช้ได้กับระบบ Unix ส่วนใหญ่)

หากต้องการใช้งานเพียงผนวกสิ่งต่อไปนี้กับของคุณ~/.bashrc(คล้ายกับเชลล์อื่น ๆ ):

if type keychain >/dev/null 2>/dev/null; then
  keychain --nogui -q <all your SSH/PGP keys>
  [ -f ~/.keychain/${HOSTNAME}-sh ] && . ~/.keychain/${HOSTNAME}-sh
  [ -f ~/.keychain/${HOSTNAME}-sh-gpg ] && . ~/.keychain/${HOSTNAME}-sh-gpg
fi

2

http://linuxproblem.org/art_9.html

เป้าหมายของคุณ

คุณต้องการใช้ Linux และ OpenSSH เพื่อทำให้งานของคุณเป็นแบบอัตโนมัติ ดังนั้นคุณต้องเข้าสู่ระบบโดยอัตโนมัติจากโฮสต์ A / ผู้ใช้ไปยังโฮสต์ B / ผู้ใช้ข คุณไม่ต้องการที่จะป้อนรหัสผ่านใด ๆ เพราะคุณต้องการโทร ssh จากภายในสคริปต์เปลือก


1
Downvote ไม่ใช่ของฉัน แต่ฉันไม่รังเกียจที่จะลบคำตอบหากพวกเขาสังเกตเห็นว่ามีคนอื่นโพสต์คำตอบที่คล้ายกันเกือบสองสามนาทีก่อนหน้านี้
Arjan

2
Arjan: ส่วนใหญ่ฉันเห็นด้วยกับคุณ แต่เมื่อโพสต์แยกจากกันเพียงไม่กี่วินาทีฉันไม่คิดว่ามันจะยุติธรรมที่จะลงโทษบุคคลที่ 2 ฉันไม่ได้บอกว่าคุณต้องให้รางวัลพวกเขาด้วยการ upvoting แต่ downvoting นั้นให้ความรู้สึกว่าคำตอบนั้นผิดแทนที่จะเป็นไม่ตรงเวลา
TheTXI

2

ฉันเขียนแบบฝึกหัดสั้น ๆ นี้มาก ๆ หลังจากที่ได้รับความผิดหวังจริงๆด้วยบทเรียนที่ยาวจริงๆจริงๆเพราะมันง่ายมาก :)

test -f ~/.ssh/id_rsa.pub || ssh-keygen -t rsa #press enter twice if given prompts, then "ssh-add"

scp ~/.ssh/id_rsa.pub destID@destMachine:/tmp/ #type password

ssh destID@destMachine #type password

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

rm /tmp/id_rsa.pub

2

สีโป๊วมี-pwตัวเลือกที่ให้คุณสร้างทางลัดบนเดสก์ท็อปเช่นนี้:

"C:\Program Files\PuTTY\putty.exe" -ssh user@192.168.2.2 -pw your_password

1
  1. ssh-keygenในพื้นที่เชื่อมต่อทำงาน (หากมันบอกคุณว่าคุณต้องระบุประเภทให้ทำssh-keygen -t rsa) เมื่อมันขอให้คุณระบุตำแหน่งไฟล์ให้ใช้ค่าเริ่มต้น เมื่อมันถามคุณสำหรับข้อความรหัสผ่านให้กด Enter เพื่อไม่ใส่ข้อความรหัสผ่าน
  2. cat ~/.ssh/id_rsa.pub(หรือตำแหน่งไฟล์เริ่มต้นใด ๆ ก็ตามssh-keygenแม้ว่าคุณจะต้องติดตั้งแบบเก่าจริงๆsshเพื่อให้มันแตกต่าง) คัดลอกผลลัพธ์ไปยังคลิปบอร์ดของคุณ
  3. เข้าสู่ระบบตามปกติไปยังโฮสต์ปลายทางเป็นบัญชีที่คุณต้องการเชื่อมต่อ แก้ไขไฟล์~/.ssh/authorized_keys(หาก~/.sshไม่มีอยู่sloginในบางที่นี่เป็นวิธีที่ง่ายและสะดวกในการสร้างไฟล์ด้วยสิทธิ์ที่ถูกต้อง) วางคลิปบอร์ดของคุณ (ที่มีid_rsa.pubจากโฮสต์อื่น) ลงในไฟล์นี้

3
-1 สำหรับการแนะนำให้เพิ่มไม่มีข้อความรหัสผ่าน หากไม่มีข้อความรหัสผ่านใครก็ตามที่อ่านไฟล์จะสามารถเป็นผู้ใช้ที่ถูกกฎหมายได้
bortzmeyer

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

พิมพ์รหัสผ่านที่เป็นปัญหาระหว่างการสร้างคีย์ไม่ใช่ทุกครั้งที่คุณเชื่อมต่อ แก้ไข?
Richard Hoskins

ไม่คีย์ที่สร้างด้วยข้อความรหัสผ่านจำเป็นต้องป้อนข้อความรหัสผ่านทุกครั้งที่มีการใช้คีย์
ความวุ่นวาย

2
ไม่ถูกต้อง. ด้วย ssh-agent (ดูคำตอบที่ยอมรับ) คุณพิมพ์รหัสผ่านเพียงครั้งเดียวต่อเซสชัน
bortzmeyer

0

ถ้าคุณต้องการที่จะทำทั้งหมดใน terminal ใน Linux:

บนโฮสต์

cd ~ / .ssh /

ssh-keygen -t {rsa | dsa} -b {1024 | 2048 | 4096} -C "ข้อความแสดงความคิดเห็นถ้าคุณต้องการ" -f id_ArbitraryName

รายการใน {} เป็นตัวเลือกใช้ rsa หรือ dsa และเลือกขนาดบิต (ใหญ่กว่าปลอดภัยกว่า)

จากนั้นคุณต้องเพิ่มการอนุญาตไปยังไฟล์ authorized_keys และ authorized_keys2

cat id_ArbitraryName.pub >> authorized_keys

cat id_AribtraryName.pub >> authorized_keys2

จากนั้นดาวน์โหลดไฟล์ id_AribtraryName ไปยังกล่องที่คุณต้องการ ssh หากกล่องเชื่อมต่อนั้นใช้ระบบปฏิบัติการยูนิกซ์อาจจำเป็นต้องใช้ไฟล์ปรับแต่ง

บนกล่องเชื่อมต่อ

ในไฟล์ปรับแต่งของคุณ - vim ~ / .ssh / config

โฮสต์ example.host.com # หรือชื่อคอมพิวเตอร์ของคุณ

ชื่อผู้ใช้

IdentityFile ~ / .ssh / id_ArbitraryName

ไฟล์กำหนดค่าต้องการการอนุญาต 600 โฟลเดอร์ SSh ต้องการ 700

หวังว่าจะช่วยถ้าคุณพบปัญหาการตั้งค่าที่ถูกละเว้น

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