คำสั่ง Linux / Unix: sshd

ชื่อ

sshd - SSH ของ OpenSSH SSH

สรุป

s [ id ]] [- k ]] [- k ] [- k ] [- k ] [-

ลักษณะ

sshd (SSH Daemon) เป็น โปรแกรมภูต สำหรับ ssh (1) โปรแกรมเหล่านี้ร่วมกันแทนที่ rlogin และ rsh และให้ การสื่อสารที่เข้ารหัสลับ ระหว่างสองโฮสต์ที่ไม่น่าเชื่อถือผ่านเครือข่ายที่ไม่ปลอดภัย โปรแกรมนี้มีวัตถุประสงค์เพื่อให้ติดตั้งและใช้งานได้ง่ายที่สุดเท่าที่จะเป็นไปได้

sshd คือภูตที่คอยรับฟังการเชื่อมต่อจากลูกค้า เป็นปกติเริ่มต้นที่บูตจาก / etc / rc มัน forks daemon ใหม่สำหรับการเชื่อมต่อขาเข้าแต่ละ Daemons forked จัดการการแลกเปลี่ยนคีย์การเข้ารหัสการตรวจสอบการเรียกใช้คำสั่งและการแลกเปลี่ยนข้อมูล การดำเนินการนี้ของ sshd สนับสนุนโปรโตคอล SSH เวอร์ชัน 1 และ 2 พร้อมกัน

โปรโตคอล SSH เวอร์ชัน 1

โฮสต์แต่ละแห่งมีคีย์ RSA เฉพาะโฮสต์ (ปกติ 1024 บิต) ที่ใช้เพื่อระบุโฮสต์ นอกจากนี้เมื่อ daemon เริ่มทำงานจะสร้างคีย์ RSA ของเซิร์ฟเวอร์ (ปกติ 768 บิต) คีย์นี้จะถูกสร้างใหม่ทุกๆชั่วโมงหากมีการใช้และไม่เคยถูกเก็บไว้ในดิสก์

เมื่อใดก็ตามที่ไคลเอ็นต์เชื่อมต่อภูตเครื่องตอบรับกับโฮสต์และคีย์เซิร์ฟเวอร์ของโฮสต์ ไคลเอ็นต์เปรียบเทียบคีย์โฮสต์ RSA กับฐานข้อมูลของตนเองเพื่อยืนยันว่าไม่มีการเปลี่ยนแปลง จากนั้นไคลเอ็นต์จะสร้างหมายเลขสุ่ม 256 บิต จะเข้ารหัสตัวเลขสุ่มนี้โดยใช้ทั้งคีย์โฮสต์และคีย์เซิร์ฟเวอร์และส่งข้อมูลที่เข้ารหัสไปยังเซิร์ฟเวอร์ ทั้งสองฝ่ายใช้หมายเลขสุ่มนี้เป็นคีย์เซสชันซึ่งใช้เพื่อเข้ารหัสการสื่อสารเพิ่มเติมทั้งหมดในเซสชัน ส่วนที่เหลือของเซสชันจะถูกเข้ารหัสโดยใช้ตัวเลขแบบเดิมขณะนี้คือปักเป้าหรือ 3DES โดยมีการใช้ 3DES ตามค่าเริ่มต้น ไคลเอนต์เลือก อัลกอริทึมการเข้ารหัสลับ เพื่อใช้จากเซิร์ฟเวอร์ที่นำเสนอโดยเซิร์ฟเวอร์

ถัดไปเซิร์ฟเวอร์และไคลเอ็นต์ป้อนโต้ตอบการตรวจสอบสิทธิ์ ไคลเอ็นต์พยายามตรวจสอบตัวเองโดยใช้. rhosts authentication, .rhosts authentication รวมกับการรับรองความถูกต้องของโฮสต์ RSA, การรับรองความถูกต้องของการตอบสนองความท้าทาย RSA หรือการตรวจสอบสิทธิ์ ผ่านรหัสผ่าน

การตรวจสอบสิทธิ์ Rhosts ถูกปิดใช้งานโดยปกติเนื่องจากไม่ปลอดภัยโดยพื้นฐาน แต่สามารถเปิดใช้งานได้ในไฟล์การกำหนดค่าเซิร์ฟเวอร์หากต้องการ ความปลอดภัยของระบบจะไม่ดีขึ้นเว้นแต่ rshd rlogind และ rexecd จะถูกปิดใช้งาน (ดังนั้นการปิดใช้งาน rlogin และ rsh ลงในเครื่อง)

โปรโตคอล SSH เวอร์ชัน 2

เวอร์ชัน 2 ทำงานคล้าย ๆ กัน: แต่ละโฮสต์มีคีย์เฉพาะโฮสต์ (RSA หรือ DSA) ที่ใช้เพื่อระบุโฮสต์ อย่างไรก็ตามเมื่อ daemon เริ่มทำงานจะไม่สร้างคีย์เซิร์ฟเวอร์ การรักษาความปลอดภัยขั้นสูงผ่านข้อตกลงสำคัญของ Diffie-Hellman ข้อตกลงสำคัญนี้ส่งผลให้เกิดคีย์เซสชันที่ใช้ร่วมกัน

ส่วนที่เหลือของเซสชันจะถูกเข้ารหัสโดยใช้รหัสที่สมมาตรปัจจุบันคือ 128 บิต AES, Blowfish, 3DES, CAST128, Arcfour, 192 บิต AES หรือ 256 บิต AES ไคลเอนต์เลือกอัลกอริทึมการเข้ารหัสลับเพื่อใช้จากเซิร์ฟเวอร์ที่นำเสนอโดยเซิร์ฟเวอร์ นอกจากนี้ความสมบูรณ์ของเซสชันจะมีให้ผ่านรหัสการตรวจสอบความลับของข้อความเข้ารหัสลับ (hmac-sha1 หรือ hmac-md5)

รุ่น Protocol 2 มีวิธีการรับรองความถูกต้องของผู้ใช้คีย์สาธารณะ (PubkeyAuthentication) หรือโฮสต์ไคลเอ็นต์ (HostbasedAuthentication) การตรวจสอบรหัสผ่านแบบเดิมและวิธีการที่ใช้การตอบสนองตามความท้าทาย

การดำเนินการคำสั่งและการส่งต่อข้อมูล

ถ้าไคลเอ็นต์ตรวจสอบตัวเองเสร็จเรียบร้อยแล้วจะมีการป้อนกล่องโต้ตอบสำหรับเตรียมเซสชัน ในขณะนี้ลูกค้าอาจขอสิ่งต่างๆเช่นการจัดสรร pseudo-tty การส่งต่อการเชื่อมต่อ X11 การส่งต่อการเชื่อมต่อ TCP / IP หรือการส่งต่อการเชื่อมต่อตัวแทนการตรวจสอบผ่านแชนเนลที่ปลอดภัย

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

เมื่อโปรแกรมผู้ใช้สิ้นสุดลงและการส่งต่อ X11 และการเชื่อมต่ออื่น ๆ ทั้งหมดถูกปิดเซิร์ฟเวอร์จะส่งสถานะออกคำสั่งไปยังไคลเอ็นต์และทั้งสองฝ่ายออก

sshd สามารถกำหนดค่าได้โดยใช้ตัวเลือกบรรทัดคำสั่งหรือแฟ้มกำหนดค่า ตัวเลือกบรรทัดคำสั่งจะแทนที่ค่าที่ระบุในไฟล์คอนฟิกูเรชัน

sshd rereads ไฟล์การกำหนดค่าของมันเมื่อได้รับสัญญาณ hangup, SIGHUP โดยการรันตัวเองด้วยชื่อที่เริ่มต้นเป็นเช่น / usr / sbin / sshd

ตัวเลือกมีดังนี้:

บิตบิต

ระบุจำนวนบิตในรหัสเซิร์ฟเวอร์ชั่วคราวเวอร์ชัน 1 (ค่าเริ่มต้น 768)

-d

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

-e

เมื่อระบุตัวเลือกนี้ sshd จะส่งออกไปยังข้อผิดพลาดมาตรฐานแทนการบันทึกระบบ

-f configuration_file

ระบุชื่อไฟล์การกำหนดค่า ค่าดีฟอลต์คือ / etc / ssh / sshd_config sshd ปฏิเสธที่จะเริ่มต้นถ้าไม่มีไฟล์คอนฟิกูเรชัน

-g login_grace_time

ให้เวลาผ่อนผันสำหรับลูกค้าในการตรวจสอบตัวเอง (ค่าเริ่มต้น 120 วินาที) หากไคลเอ็นต์ไม่สามารถตรวจสอบความถูกต้องของผู้ใช้ได้ภายในหลายวินาทีเซิร์ฟเวอร์จะยกเลิกการเชื่อมต่อและออกจากระบบ ค่าเป็นศูนย์แสดงว่าไม่มีขีด จำกัด

-h host_key_file

ระบุไฟล์จากที่อ่านคีย์โฮสต์ ตัวเลือกนี้ต้องได้รับถ้า sshd ไม่ทำงานเป็น root (เนื่องจากไฟล์คีย์หลักของโฮสต์ปกติไม่สามารถอ่านได้โดยทุกคนยกเว้น root) ค่าเริ่มต้นคือ / etc / ssh / ssh_host_key สำหรับโปรโตคอลเวอร์ชัน 1 และ / etc / ssh / ssh_host_rsa_key และ / etc / ssh / ssh_host_dsa_key สำหรับโปรโตคอลเวอร์ชัน 2. สามารถเก็บไฟล์คีย์หลักได้หลายไฟล์สำหรับโปรโตคอลเวอร์ชันต่างๆและคีย์โฮสต์ อัลกอริทึม

-ผม

ระบุว่ามีการเรียกใช้ sshd จาก inetd sshd ไม่ทำงานจาก inetd เพราะต้องการสร้างคีย์เซิร์ฟเวอร์ก่อนที่จะสามารถตอบสนองต่อไคลเอ็นต์และอาจใช้เวลาหลายสิบวินาที ลูกค้าจะต้องรอนานหากคีย์ถูกสร้างใหม่ทุกครั้ง อย่างไรก็ตามมีขนาดคีย์เล็ก (เช่น 512) โดยใช้ sshd จาก inetd อาจเป็นไปได้

-k key_gen_time

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

-o ตัวเลือก

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

-p พอร์ต

ระบุพอร์ตที่เซิร์ฟเวอร์รับฟังการเชื่อมต่อ (ค่าเริ่มต้น 22) อนุญาตให้ใช้พอร์ตหลายพอร์ต พอร์ตที่ระบุในแฟ้มการกำหนดค่าจะถูกละเว้นเมื่อมีระบุพอร์ตบรรทัดคำสั่ง

-q

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

t-

โหมดการทดสอบ เพียงตรวจสอบความถูกต้องของแฟ้มการกำหนดค่าและความคล่องแคล่วของคีย์ นี้จะเป็นประโยชน์สำหรับการปรับปรุง sshd น่าเชื่อถือเป็นตัวเลือกการกำหนดค่าอาจมีการเปลี่ยนแปลง

-u len

ตัวเลือกนี้ใช้เพื่อระบุขนาดของฟิลด์ในโครงสร้าง utmp ที่เก็บชื่อโฮสต์ระยะไกล ถ้าชื่อโฮสต์ที่ได้รับการแก้ไขมีความยาวมากกว่า len ค่าทศนิยมทศนิยมจะถูกใช้แทน ซึ่งจะช่วยให้โฮสต์ที่มีชื่อโฮสต์ที่ยาวมาก ๆ ที่มีการทับข้อมูลฟิลด์นี้จะยังคงมีการระบุที่ไม่ซ้ำกัน ระบุ - u0 ระบุว่าเฉพาะที่อยู่ทศนิยมทศนิยมควรจะใส่ลงในไฟล์ utmp - u0 ถูกใช้เพื่อป้องกันไม่ให้ sshd ทำการ ร้องขอ DNS เว้นแต่ว่ากลไกการตรวจสอบสิทธิหรือการกำหนดค่าจะต้องใช้ กลไกการตรวจสอบสิทธิ์ที่อาจต้องใช้ DNS รวมถึง RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication และใช้ตัวเลือก from-pattern-list ในไฟล์คีย์ ตัวเลือกการกำหนดค่าที่ต้องใช้ DNS รวมถึงการใช้รูปแบบ USER @ HOST ใน AllowUsers หรือ DenyUsers

-D

เมื่อระบุตัวเลือกนี้ sshd จะไม่ถอดออกและไม่ได้เป็นภูต ช่วยให้สามารถตรวจสอบ sshd ได้ ง่าย

-4

กองกำลัง sshd ใช้ที่อยู่ IPv4 เท่านั้น

-6

กองกำลัง sshd ใช้ที่อยู่ IPv6 เท่านั้น

แฟ้มการกำหนดค่า

sshd อ่านข้อมูลการกำหนดค่าจาก / etc / ssh / sshd_config (หรือไฟล์ที่ระบุด้วย - f ในบรรทัดคำสั่ง) รูปแบบไฟล์และตัวเลือกการกำหนดค่าจะอธิบายไว้ใน sshd_config5

ขั้นตอนการเข้าสู่ระบบ

เมื่อผู้ใช้เข้าสู่ระบบสำเร็จ sshd จะดำเนินการดังนี้:

  1. หากการเข้าสู่ระบบอยู่ใน tty และไม่มีการระบุคำสั่งพิมพ์ครั้งสุดท้ายในการล็อกอินและ / etc / motd (ยกเว้นกรณีที่ไม่สามารถป้องกันได้ในไฟล์คอนฟิกูเรชันหรือโดย $ HOME / .hushlogin ดูส่วน Sx FILES)
  2. หากการเข้าสู่ระบบอยู่ใน tty, บันทึกเวลาการเข้าสู่ระบบ
  3. ตรวจสอบ / etc / nologin ถ้ามีพิมพ์เนื้อหาและจบการทำงาน (ยกเว้นราก)
  4. การเปลี่ยนแปลงเพื่อให้ทำงานโดยใช้สิทธิ์ของผู้ใช้ตามปกติ
  5. ตั้งค่าสภาพแวดล้อมพื้นฐาน
  6. อ่าน $ HOME / .ssh / environment ถ้ามีอยู่และผู้ใช้สามารถเปลี่ยนแปลงสภาพแวดล้อมได้ ดูตัวเลือก PermitUserEnvironment ใน sshd_config5
  7. การเปลี่ยนแปลงไดเรกทอรีบ้านของผู้ใช้
  8. ถ้า $ HOME / .ssh / rc อยู่ให้รัน; อื่นถ้า / etc / ssh / sshrc มีอยู่รัน; มิฉะนั้นจะเรียกใช้ xauth ไฟล์ `` rc '' จะได้รับโปรโตคอลการตรวจสอบสิทธิ์ X11 และคุกกี้ในอินพุตมาตรฐาน
  9. ใช้เปลือกหรือคำสั่งของผู้ใช้

Authorized_Keys รูปแบบไฟล์

$ HOME / .ssh / authorized_keys เป็นไฟล์ดีฟอลต์ที่แสดงคีย์สาธารณะที่ได้รับอนุญาตสำหรับการพิสูจน์ตัวตน RSA ในเวอร์ชันโปรโตคอล 1 และสำหรับการตรวจสอบคีย์สาธารณะ (PubkeyAuthentication) ในเวอร์ชันโพรโทคอล 2 อาจมีการใช้ไฟล์ AuthorizedKeysFile เพื่อระบุไฟล์สำรอง

แต่ละบรรทัดของไฟล์ประกอบด้วยคีย์เดียว (บรรทัดว่างและบรรทัดที่ขึ้นต้นด้วย `# 'จะถูกละเว้นเป็นความคิดเห็น) แต่ละคีย์สาธารณะ RSA ประกอบด้วยฟิลด์ต่อไปนี้คั่นด้วยช่องว่าง: ตัวเลือกบิตเลขยกกำลังโมดูลัสความคิดเห็น แต่ละโปรโตคอลรุ่น 2 คีย์สาธารณะประกอบด้วย: ตัวเลือก keytype, คีย์เข้ารหัส base64, comment ช่องตัวเลือกเป็นตัวเลือก; การแสดงตนจะขึ้นอยู่กับว่าบรรทัดนั้นเริ่มต้นด้วยตัวเลขหรือไม่ (ฟิลด์ตัวเลือกจะไม่ขึ้นต้นด้วยตัวเลข) บิตโมบิลิตี้เลขและโมเมนตัมและช่องแสดงความคิดเห็นให้คีย์ RSA สำหรับโปรโตคอลเวอร์ชัน 1; ช่องความคิดเห็นไม่ได้ถูกใช้เพื่ออะไร (แต่อาจสะดวกสำหรับผู้ใช้ในการระบุคีย์) สำหรับโปรโตคอลเวอร์ชัน 2 keytype คือ `` ssh-dss '' หรือ `` ssh-rsa ''

โปรดทราบว่าบรรทัดในไฟล์นี้มักมีความยาวหลายร้อย ไบต์ (เนื่องจากขนาดของการเข้ารหัสคีย์สาธารณะ) คุณไม่ต้องการพิมพ์พวกเขา; แทนคัดลอก id id_dsa.pub identity.pub หรือไฟล์ id_rsa.pub และแก้ไข

sshd บังคับใช้โมดูลโมดูลัสโมดูลัส RSA ขั้นต่ำสำหรับโปรโตคอล 1 และโปรโตคอล 2 คีย์จาก 768 บิต

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

จาก = รูปแบบรายการ

ระบุว่านอกจากการตรวจสอบคีย์สาธารณะชื่อที่ยอมรับของโฮสต์ระยะไกลต้องอยู่ในรายการรูปแบบที่คั่นด้วยจุลภาค (`* 'และ`?' ใช้เป็นสัญลักษณ์แทน) รายการอาจมีรูปแบบที่ถูกลบล้างโดยนำหน้าด้วย `! ' ; ถ้าชื่อโฮสต์ตามรูปแบบที่ตรงกับรูปแบบที่ถูกปฏิเสธคีย์นี้ไม่ได้รับการยอมรับ วัตถุประสงค์ของตัวเลือกนี้คือการเพิ่มความปลอดภัยให้กับตัวเลือก: การตรวจสอบคีย์สาธารณะโดยตัวเองไม่เชื่อถือเครือข่ายหรือเซิร์ฟเวอร์ชื่อหรืออะไรก็ได้ (แต่คีย์); แต่ถ้าใครบางคนขโมยกุญแจคีย์จะอนุญาตให้ผู้บุกรุกเข้าสู่ระบบได้จากทุกที่ในโลก ตัวเลือกเพิ่มเติมนี้ทำให้การใช้กุญแจที่ถูกขโมยยากขึ้น (เซิร์ฟเวอร์ชื่อและ / หรือเราเตอร์จะต้องถูกบุกรุกนอกเหนือจากคีย์)

คำสั่งคำสั่ง =

ระบุว่าคำสั่งจะถูกดำเนินการเมื่อคีย์นี้ใช้สำหรับการตรวจสอบสิทธิ์ คำสั่งที่ผู้ใช้ (ถ้ามี) จะถูกละเลย คำสั่งจะทำงานบน pty ถ้าลูกค้าร้องขอ pty; มิฉะนั้นจะทำงานโดยไม่มี tty ถ้าจำเป็นต้องมีช่องสะอาด 8 บิตเราจะต้องไม่ร้องขอ pty หรือควรระบุ เลขที่ pty อาจมีคำพูดอ้างคำสั่งด้วยเครื่องหมายทับขวา ตัวเลือกนี้อาจเป็นประโยชน์ในการ จำกัด บางคีย์สาธารณะเพื่อดำเนินการเฉพาะบางอย่าง ตัวอย่างอาจเป็นคีย์ที่อนุญาตให้มีการสำรองข้อมูลระยะไกล แต่ไม่มีอะไรอื่น โปรดทราบว่าไคลเอ็นต์อาจระบุการส่งต่อ TCP / IP และ / หรือ X11 เว้นแต่จะได้รับอนุญาตโดยชัดแจ้ง โปรดทราบว่าตัวเลือกนี้ใช้กับการดำเนินการของเชลล์คำสั่งหรือระบบย่อย

สภาพแวดล้อมที่ชื่อ = = ค่า

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

ไม่มีการส่งต่อพอร์ต

ห้ามส่งต่อ TCP / IP เมื่อใช้คีย์นี้สำหรับการตรวจสอบสิทธิ์ การร้องขอการส่งต่อพอร์ตจากไคลเอ็นต์จะส่งคืนข้อผิดพลาด นี้อาจจะใช้เช่นในการเชื่อมต่อกับตัวเลือก คำสั่ง

ไม่มี X11 การส่งต่อ

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

ไม่มีตัวแทนการส่งต่อ

ยับยั้งการส่งต่อตัวแทนการตรวจสอบสิทธิ์เมื่อใช้คีย์นี้สำหรับการตรวจสอบสิทธิ์

ไม่มี Pty

ป้องกันการจัดสรร tty (คำขอจัดสรร pty จะล้มเหลว)

permitopen = โฮสต์: พอร์ต

จำกัด การโอนย้ายพอร์ตเล็ต `` ssh -L '' ภายในเครื่อง เพื่อให้สามารถเชื่อมต่อกับโฮสต์และพอร์ตที่ระบุเท่านั้น ที่อยู่ IPv6 สามารถระบุได้ด้วยไวยากรณ์ทางเลือก: host / port ตัวเลือก permitopen หลายตัวสามารถใช้คั่นด้วยเครื่องหมายจุลภาค ไม่มีการจับคู่รูปแบบกับชื่อโฮสต์ที่ระบุต้องเป็นโดเมนหรือที่อยู่ที่แท้จริง

ตัวอย่าง

1024 33 12121 ... 312314325 ylo@foo.bar

จาก = "*. niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23 ... 2334 ylo @ niksula

คำสั่ง = "dump / home", no-pty, no-port-forwarding 1024 33 23 ... 2323 สำรองข้อมูล.hut.fi

permitopen = "10.2.1.55:80", permitopen = "10.2.1.56:25" 1024 33 23 ... 2323

Ssh_Known_Hosts รูปแบบไฟล์

ไฟล์ / etc / ssh / ssh_known_hosts และ $ HOME / .ssh / known_hosts ประกอบด้วยคีย์สาธารณะของโฮสต์สำหรับโฮสต์ที่รู้จักทั้งหมด ผู้ดูแลระบบควรจัดทำไฟล์ทั่วโลก (ถ้ามี) และไฟล์ต่อผู้ใช้จะถูกเก็บไว้โดยอัตโนมัติ: เมื่อใดก็ตามที่ผู้ใช้เชื่อมต่อจากโฮสต์ที่ไม่รู้จักคีย์จะถูกเพิ่มลงในไฟล์ต่อผู้ใช้

แต่ละบรรทัดในไฟล์เหล่านี้มีฟิลด์ต่อไปนี้: ชื่อโฮสต์บิตเลขยกกำลังโมดูลัสความคิดเห็น ช่องจะคั่นด้วยช่องว่าง

ชื่อโฮสต์เป็นรายการรูปแบบที่คั่นด้วยเครื่องหมายจุลภาค ('*' และ '?' ทำหน้าที่เป็นสัญลักษณ์แทน) แต่ละรูปแบบจะตรงกันกับชื่อโฮสต์ตามบัญญัติ (เมื่อตรวจสอบสิทธิ์ไคลเอ็นต์) หรือเทียบกับชื่อผู้ใช้ที่ระบุ (เมื่อตรวจสอบความถูกต้องของเซิร์ฟเวอร์) รูปแบบอาจจะถูกนำหน้าด้วย `! ' เพื่อระบุการปฏิเสธ: ถ้าชื่อโฮสต์ตรงกับรูปแบบที่ไม่เป็นที่ยอมรับจะไม่ได้รับการยอมรับ (ตามบรรทัดนั้น) แม้ว่าจะตรงกับรูปแบบอื่นในบรรทัดก็ตาม

บิตเลขชี้กำลังและโมดูลัสจะถูกนำมาจากคีย์โฮสต์ RSA โดยตรง สามารถหาได้เช่นจาก /etc/ssh/ssh_host_key.pub เขตข้อมูลความคิดเห็นที่เลือกใช้จะยังคงอยู่ท้ายบรรทัดและไม่ได้ใช้

บรรทัดที่ขึ้นต้นด้วย `# 'และบรรทัดที่ว่างเปล่าจะถูกละเว้นเป็นความคิดเห็น

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

โปรดทราบว่าบรรทัดในไฟล์เหล่านี้มักมีความยาวหลายร้อยอักขระและคุณไม่ต้องการพิมพ์คีย์โฮสต์ด้วยตนเอง สร้างไฟล์เหล่านั้นโดยใช้สคริปต์หรือโดยการ /etc/ssh/ssh_host_key.pub และเพิ่มชื่อโฮสต์ที่ด้านหน้า

ตัวอย่าง

closenet, ... , 130.233.208.41 1024 37 159 ... 93 closenet.hut.fi cvs.openbsd.org, 199.185.137.3 ssh-rsa AAAA1234 ..... =

ดูสิ่งนี้ด้วย

SCP (1), sftp (1), ssh (1), ssh-add1, ssh-agent1, ssh-keygen1, login.conf5, moduli (5), sshd_config5, sftp-server8

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "สถาปัตยกรรมโพรโทคอลของ SSH" ฉบับร่าง ietf-secsh-architecture-12.txt มกราคม 2002 เอกสารงานที่ดำเนินการอยู่

M. Friedl N. Provos วอชิงตันซิมป์สัน "Diffie-Hellman Group Exchange for SSH Transport Layer Protocol" ร่างฉบับ - ietf-secsh-dh-group-exchange-02.txt มกราคม 2002 งานที่กำลังดำเนินอยู่

สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ