ในการตั้งค่าคีย์ SSH ระหว่างสองเซิร์ฟเวอร์ เราต้องทำตามขั้นตอนเหล่านี้:
สร้างคู่คีย์บนเซิร์ฟเวอร์ต้นทาง เมื่อเราให้คำสั่ง ssh-keygen มันจะสร้างคู่คีย์ RSA 2048 บิตตามค่าเริ่มต้น และถ้าคุณต้องการการเข้ารหัสที่แข็งแกร่งกว่านี้ คุณสามารถใช้ 4096 บิตได้เช่นกัน เพื่อที่คุณจะต้องใช้ -b 4096 ในการสิ้นสุดคำสั่ง ssh-keygen ฉันใช้ค่าเริ่มต้นที่นี่
สองสิ่งที่ต้องดูแลในผลลัพธ์ด้านล่าง:
ในบรรทัด ป้อนไฟล์ที่จะบันทึกคีย์ |_+_|
กำลังขอเส้นทางเพื่อบันทึกคีย์และค่าเริ่มต้นก็ใช้ได้ตามปกติ หากค่าดีฟอลต์เป็นค่าปกติ คุณสามารถกด Enter หากคุณต้องการลองใช้เส้นทางอื่น คุณต้องระบุเส้นทางเดิมที่นั่น บางครั้งสิ่งนี้จะพูดว่า:
/ราก/.ssh/id_rsa มีอยู่แล้ว เขียนทับ(และ/NS)?คุณควรทำสำเนาของโฟลเดอร์ .ssh ก่อนทำการเปลี่ยนแปลงใดๆ หรือควรรู้ว่าคุณกำลังทำอะไรอยู่ การส่ง Yes จะทำให้รหัสเก่า (หากใช้งานอยู่แล้ว ) ไม่ทำงาน
ในบรรทัด ป้อนข้อความรหัสผ่าน (ว่างเปล่าสำหรับไม่มีข้อความรหัสผ่าน): นี่เป็นขั้นตอนการรักษาความปลอดภัยเพิ่มเติมซึ่งจะถามข้อความรหัสผ่านในแต่ละครั้งเมื่อคุณพยายามเข้าสู่ระบบ SSH และจะทำหน้าที่เป็นการยืนยันแบบ 2 ขั้นตอน แต่ถ้าคุณต้องการการเข้าถึง ssh สำหรับสคริปต์ใด ๆ หรืองานตรงอื่น ๆ และงานที่รวดเร็ว ไม่ควรมีสิ่งนี้จะดีกว่า นอกเหนือจากการเขียนสคริปต์หรือการทำงานอัตโนมัติ เราขอแนะนำให้คุณมีสิ่งนี้อย่างแน่นอน
ผลลัพธ์ทั้งหมดของคำสั่งสำหรับการอ้างอิง:
[ป้องกันอีเมล] :~$ssh-keygenสร้างสาธารณะ/คู่คีย์ rsa ส่วนตัว
เข้าไฟล์ ใน ที่เพื่อบันทึกคีย์(/ราก/.ssh/id_rsa):
สร้างไดเร็กทอรี'/root/.ssh'.
ใส่ข้อความรหัสผ่าน(ว่างเปล่าสำหรับไม่มีข้อความรหัสผ่าน):
ป้อนข้อความรหัสผ่านเดิมอีกครั้ง:
ข้อมูลประจำตัวของคุณได้รับการบันทึกแล้วใน /ราก/.ssh/id_rsa
คีย์สาธารณะของคุณได้รับการบันทึกแล้วใน /ราก/.ssh/id_rsa.pub.
ลายนิ้วมือที่สำคัญคือ:
SHA256:z4nl0d9vJpo/5bdc4gYZh8nnTjHtXB4Se/UqyuyigUI สุเมช@ศรี
กุญแจภาพ randomart ของคือ:
+---[RSA 2048]----+
| |
| . .
| . oo.o |
| .=o=o+|
| E S o. * OBo |
| . . * หรือ +. +. = |
| . . . .o=. =ooo|
| . .. + o*.B|
| ..โอ. o + oB + |
+----[SHA256] -----+
[ป้องกันอีเมล] ~$
ขั้นตอนที่ 2 : คัดลอกคู่คีย์ที่สร้างนี้ไปยังเซิร์ฟเวอร์ปลายทางของคุณ
มี 2 วิธีในการคัดลอกสิ่งนี้ไปยังเซิร์ฟเวอร์ปลายทางของคุณ
- การใช้คำสั่ง ssh-copy-id
- คัดลอกคีย์ ssh โดยใช้ผู้ใช้ ssh ปกติ/ส่งเป็นซับเดียวจากเครื่องท้องถิ่นของเราหรือหลังจากลงชื่อเข้าใช้เซิร์ฟเวอร์
2.1 การใช้คำสั่ง ssh-copy-id
ssh-copy-id จะจัดการการคัดลอกและตั้งค่าคีย์ไปยังเซิร์ฟเวอร์ระยะไกลด้วยวิธีที่เหมาะสมสำหรับคุณ เมื่อคำสั่งเสร็จสิ้น คุณไม่จำเป็นต้องมีรหัสผ่านสำหรับการเข้าสู่ระบบแต่ละครั้ง ตอนนี้คุณสามารถเขียนสคริปต์อัตโนมัติทั้งหมดของคุณสำหรับการทำงานของผู้ดูแลระบบโดยไม่ต้องป้อนรหัสผ่านด้วยตนเอง และประหยัดเวลาในการเข้าถึงระบบที่คุณใช้ตลอดเวลาในแต่ละวัน
ก่อนอื่น คุณต้องตรวจสอบว่ามีคำสั่งเช่นนี้หรือไม่ และหากคำสั่งนั้นใช้งานได้ และผู้ใช้ที่คุณกำลังพยายามเข้าถึงคำสั่งนี้อยู่หรือไม่ คุณสามารถใช้คำสั่งนี้เพื่อคัดลอกกุญแจสาธารณะไปยังเซิร์ฟเวอร์ระยะไกลได้ ยูทิลิตีนี้จะสแกนบัญชีในเครื่องของคุณเพื่อหาคีย์สาธารณะ rsa และจะแจ้งให้คุณใส่รหัสผ่านของบัญชีผู้ใช้ระยะไกล
ที่นี่เราจะคัดลอกคีย์ root ssh ไปยังการเข้าถึงระดับรากของเซิร์ฟเวอร์ ดังนั้นเพื่อให้ได้สำเนานี้ คุณต้องเข้าสู่ระบบ / เปลี่ยนเป็นผู้ใช้ที่คุณสร้างคีย์ ในกรณีนี้ เรากำลังพยายามเชื่อมต่อรูท-รูท
ผลลัพธ์เต็มอยู่ด้านล่างและฉันกำลังเพิ่มรายละเอียดที่จำเป็นในระหว่างนั้น
ราก@แหล่งที่มา]]:~$ ssh-copy-id root@192.1.1.19-NS พ.ศ. 2529ความถูกต้องของโฮสต์'[192.1.1.19]: 1986 ([192.1.1.19]: 1986)'สามารถไม่ได้รับการจัดตั้งขึ้น
ลายนิ้วมือคีย์ ECDSA คือ SHA256:YYOj54aEJvIle4D2osDiEhuS0NEDImPTiMhHGgDqQFk
คุณแน่ใจหรือว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่
หากคุณใช้งานเป็นครั้งแรก คุณจะได้รับคำตอบดังกล่าว และคุณต้องพิมพ์ใช่ จากนั้นกด Enter
/usr/เป็น/ssh-copy-id: INFO: กำลังพยายามเข้าสู่ระบบในด้วยคีย์ใหม่(NS),เพื่อกรองสิ่งที่ติดตั้งไว้แล้วออกไป
/usr/เป็น/ssh-copy-id: ข้อมูล:1กุญแจ(NS)ยังคงต้องติดตั้ง- ถ้าคุณได้รับแจ้ง
ตอนนี้มันเป็นไปติดตั้งกุญแจใหม่
ราก@192.1.1.19รหัสผ่าน:
ใส่รหัสผ่านแล้วกด Enter
จำนวนคีย์(NS)เพิ่ม:1ตอนนี้ลองลงชื่อเข้าใช้เครื่องด้วย: ssh -p '1986' ' [email protected] ′
และตรวจสอบให้แน่ใจว่าทำงานได้ตามที่คาดไว้
หลังจากนี้ คุณจะสามารถเข้าสู่ระบบเซิร์ฟเวอร์ได้โดยไม่ต้องใช้รหัสผ่าน เมื่อรหัสผ่านใช้การพิสูจน์ตัวตนน้อยลงแล้ว คุณสามารถปิดการตรวจสอบรหัสผ่านเพื่อให้คุณสามารถล็อกการเข้าถึง ssh ได้โดยใช้คีย์ ssh
2.2 การคัดลอกคีย์ ssh โดยใช้ผู้ใช้ ssh ปกติ/ส่งด้วยตนเอง
หากบางวิธีที่คุณไม่สามารถทำให้คำสั่งดังกล่าวทำงานได้ ฉันจะเพิ่มขั้นตอนเพื่อให้คุณสามารถคัดลอกคีย์ ssh และรหัสผ่านการตั้งค่าได้น้อยกว่าการรับรองความถูกต้องจากเครื่องของคุณไปยังเซิร์ฟเวอร์ของคุณ
ในการดำเนินการนี้ เราต้องต่อท้ายเนื้อหาของไฟล์ id_rsa.pub ของคุณกับไฟล์ /root/.ssh/authorized_keys บนเครื่องปลายทางของคุณ หากคุณกำลังจะคัดลอกคีย์ไปยังผู้ใช้รูท ตำแหน่งจะเป็น |_+_|
จากขั้นตอนที่ 1 : คุณอาจเห็นบรรทัดด้านล่าง
คีย์สาธารณะของคุณถูกบันทึกไว้ใน |_+_|
นี่บอกว่ากุญแจสาธารณะที่คุณต้องคัดลอกไปยังเซิร์ฟเวอร์ระยะไกลนั้นอยู่ในไฟล์ด้านบน ดังนั้นคุณต้องคัดลอกเนื้อหาของไฟล์นี้แล้วคัดลอกหรือวางลงใน Author_keys ของเซิร์ฟเวอร์ระยะไกล
ทำตามขั้นตอนด้านล่าง
คำสั่งด้านล่างจะให้คีย์ที่จะคัดลอก:
[ป้องกันอีเมล] $แมว /ราก/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9Hg
H1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ
8ดูM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUS
GHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UV
KzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ik
rygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZ
X3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCS
q54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY0
95ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G
2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv +Ow9gI0x8GvaQ== รูท@แหล่งที่มา
เข้าสู่ระบบเซิร์ฟเวอร์ระยะไกลที่คุณต้องการคัดลอกคีย์ด้านบนนี้ และตรวจสอบให้แน่ใจว่าคุณใช้ผู้ใช้เดียวกันกับที่คุณต้องการคัดลอกคีย์ ssh หากคุณต้องการการเข้าถึงรูทโดยตรง ให้คัดลอกคีย์ไปที่ /root/.ssh/ section . โดยตรง
สร้างโฟลเดอร์ .ssh หากไม่มีอยู่
เพื่อตรวจสอบว่ามีอยู่หรือไม่และหากไม่ได้สร้างโดยใช้คำสั่งด้านล่าง:
[ป้องกันอีเมล] :$ลส -NS /ราก/.sshหากไม่มีโฟลเดอร์ ให้สร้างด้วยคำสั่งด้านล่าง:
[ป้องกันอีเมล] $mkdir -NS /ราก/.ssh[ป้องกันอีเมล] $สัมผัส /ราก/.ssh/ได้รับอนุญาต_keys
[ป้องกันอีเมล] :$โยนออกssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44 + tXfJ7mIrKNxOOwxI
xvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3
EG112n6d + SMXY0OEBIcO6x + PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B + ZV
IpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZI
SvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1
nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly
57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsd
BIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv +Ow9gI0x8GvaQ==ราก@แหล่งที่มา>>
/ราก/.ssh/ได้รับอนุญาต_keys
ตรวจสอบให้แน่ใจว่าการอนุญาตของโฟลเดอร์นั้นถูกต้อง
chmod -NS ไป=/ราก/.ssh/หลังจากนี้ โปรดลองลงชื่อเข้าใช้เซิร์ฟเวอร์จากเทอร์มินัลใหม่ และตรวจสอบให้แน่ใจว่าการตรวจสอบสิทธิ์แบบไม่ใช้คีย์ทำงานตามที่คาดไว้ จากนั้นปิดใช้งานการตรวจสอบรหัสผ่านในการกำหนดค่า ssh
หมายเหตุ: ตรวจสอบให้แน่ใจเป็นสองเท่าว่าคุณสามารถลงชื่อเข้าใช้เซิร์ฟเวอร์ได้ตามต้องการ (ไม่ว่าจะโดยตรงจากเครื่องของคุณหรือคุณสามารถเข้าสู่ระบบไปยังผู้ใช้รายอื่นในเซิร์ฟเวอร์ระยะไกลและเปลี่ยนเป็นรูทจากบัญชีนั้นด้วยตนเองโดยใช้ su หรือ sudo ) จากนั้นเท่านั้น ปิดการใช้งานการตรวจสอบรหัสผ่าน มิฉะนั้น มีโอกาสที่ผู้ใช้รูทจะถูกล็อค
หากคุณมีความต้องการใด ๆ คุณสามารถติดต่อฉันเพื่อขอความช่วยเหลือและแบ่งปันความคิดเห็นของคุณได้ตลอดเวลา