SSH
นี่คือคำสั่ง ssh ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
SSH — ไคลเอนต์ OpenSSH SSH (โปรแกรมเข้าสู่ระบบระยะไกล)
เรื่องย่อ
SSH [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]พอร์ต]
[-E ไฟล์บันทึก] [-e หนี_char] [-F ไฟล์คอนฟิก] [-I pkcs11] [-i ตัวตน_file]
[-L ที่อยู่] [-l เข้าสู่ระบบ_name] [-m mac_spec] [-O ctl_cmd] [-o ตัวเลือก] [-p พอร์ต]
[-Q แบบสอบถาม_ตัวเลือก] [-R ที่อยู่] [-S ctl_path] [-W เจ้าภาพ:พอร์ต] [-w local_tun[:รีโมท_tun]]
[ผู้ใช้งาน@]ชื่อโฮสต์ [คำสั่ง]
DESCRIPTION
SSH (ไคลเอ็นต์ SSH) เป็นโปรแกรมสำหรับเข้าสู่ระบบเครื่องระยะไกลและสำหรับดำเนินการคำสั่ง
บนเครื่องระยะไกล มีวัตถุประสงค์เพื่อให้การสื่อสารที่มีการเข้ารหัสที่ปลอดภัยระหว่างสอง
โฮสต์ที่ไม่น่าเชื่อถือบนเครือข่ายที่ไม่ปลอดภัย การเชื่อมต่อ X11, พอร์ต TCP โดยพลการและ
ซ็อกเก็ตโดเมน UNIX ยังสามารถส่งต่อผ่านช่องทางที่ปลอดภัย
SSH เชื่อมต่อและเข้าสู่ระบบที่ระบุ ชื่อโฮสต์ (พร้อมตัวเลือก ผู้ใช้งาน ชื่อ). ผู้ใช้ต้อง
พิสูจน์ตัวตนของเขา/เธอกับเครื่องระยะไกลโดยใช้หนึ่งในหลายวิธี (ดูด้านล่าง)
If คำสั่ง ถูกระบุ มันถูกดำเนินการบนรีโมตโฮสต์แทนล็อกอินเชลล์
ตัวเลือกมีดังนี้:
-1 กองกำลัง SSH เพื่อลองใช้โปรโตคอลเวอร์ชัน 1 เท่านั้น
-2 กองกำลัง SSH เพื่อลองใช้โปรโตคอลเวอร์ชัน 2 เท่านั้น
-4 กองกำลัง SSH เพื่อใช้ที่อยู่ IPv4 เท่านั้น
-6 กองกำลัง SSH เพื่อใช้ที่อยู่ IPv6 เท่านั้น
-A เปิดใช้งานการส่งต่อการเชื่อมต่อตัวแทนการรับรองความถูกต้อง นอกจากนี้ยังสามารถ
ระบุไว้ตามแต่ละโฮสต์ในไฟล์การกำหนดค่า
ควรเปิดใช้งานการส่งต่อตัวแทนด้วยความระมัดระวัง ผู้ใช้ที่มีความสามารถในการเลี่ยงผ่าน
สิทธิ์ของไฟล์บนรีโมตโฮสต์ (สำหรับซ็อกเก็ตโดเมน UNIX ของเอเจนต์) สามารถเข้าถึงได้
ตัวแทนในพื้นที่ผ่านการเชื่อมต่อที่ส่งต่อ ผู้โจมตีไม่สามารถรับกุญแจได้
วัสดุจากเอเจนต์ อย่างไรก็ตาม พวกเขาสามารถดำเนินการกับคีย์ที่เปิดใช้งาน
เพื่อตรวจสอบความถูกต้องโดยใช้ข้อมูลประจำตัวที่โหลดลงในตัวแทน
-a ปิดใช้งานการส่งต่อการเชื่อมต่อตัวแทนการรับรองความถูกต้อง
-b bind_address
ใช้ bind_address บนเครื่องท้องถิ่นเป็นที่อยู่ต้นทางของการเชื่อมต่อ เท่านั้น
มีประโยชน์ในระบบที่มีมากกว่าหนึ่งที่อยู่
-C ร้องขอการบีบอัดข้อมูลทั้งหมด (รวมถึง stdin, stdout, stderr และข้อมูลสำหรับ
ส่งต่อการเชื่อมต่อโดเมน X11, TCP และ UNIX) อัลกอริทึมการบีบอัดคือ
เดียวกับที่ใช้โดย gzip(1) และ "ระดับ" สามารถควบคุมได้โดย ระดับการบีบอัด
ตัวเลือกสำหรับโปรโตคอลเวอร์ชัน 1 ต้องการการบีบอัดในสายโมเด็มและอื่น ๆ
การเชื่อมต่อที่ช้า แต่จะช้าลงในเครือข่ายที่รวดเร็วเท่านั้น ค่าเริ่มต้น
ค่าสามารถตั้งค่าแบบโฮสต์ต่อโฮสต์ในไฟล์คอนฟิกูเรชัน เห็น
การอัด ตัวเลือก
-c cipher_spec
เลือกข้อกำหนดการเข้ารหัสสำหรับการเข้ารหัสเซสชัน
โปรโตคอลเวอร์ชัน 1 อนุญาตข้อกำหนดของการเข้ารหัสเดียว ค่าที่รองรับ
คือ “3des”, “blowfish” และ “des” สำหรับโปรโตคอลเวอร์ชัน 2 cipher_spec เป็นเครื่องหมายจุลภาค-
แยกรายการเลขศูนย์เรียงตามลำดับความชอบ ดู ยันต์ คีย์เวิร์ดใน
ssh_config(5) สำหรับข้อมูลเพิ่มเติม
-D [bind_address:]พอร์ต
ระบุการส่งต่อพอร์ตระดับแอปพลิเคชัน "ไดนามิก" ในเครื่อง งานนี้โดย
การจัดสรรซ็อกเก็ตเพื่อฟัง พอร์ต ด้านท้องถิ่น ผูกติดกับ
ที่ระบุไว้ bind_address. เมื่อใดก็ตามที่มีการเชื่อมต่อกับพอร์ตนี้ การเชื่อมต่อ
จะถูกส่งต่อผ่านช่องทางที่ปลอดภัย จากนั้นจึงใช้โปรโตคอลแอปพลิเคชันเพื่อ
กำหนดตำแหน่งที่จะเชื่อมต่อจากเครื่องระยะไกล ปัจจุบัน SOCKS4 และ
รองรับโปรโตคอล SOCKS5 และ SSH จะทำหน้าที่เป็นเซิร์ฟเวอร์ SOCKS เฉพาะรูทเท่านั้นที่สามารถ
ส่งต่อพอร์ตที่มีสิทธิพิเศษ การส่งต่อพอร์ตแบบไดนามิกยังสามารถระบุใน
ไฟล์การกำหนดค่า
สามารถระบุที่อยู่ IPv6 ได้โดยใส่ที่อยู่ในวงเล็บเหลี่ยม เท่านั้น
superuser สามารถส่งต่อพอร์ตที่มีสิทธิพิเศษได้ โดยค่าเริ่มต้น พอร์ตในเครื่องจะถูกผูกไว้กับ
สอดคล้องกับ เกตเวย์พอร์ต การตั้งค่า อย่างไรก็ตาม ความชัดเจน bind_address อาจจะ
ใช้เพื่อผูกการเชื่อมต่อไปยังที่อยู่เฉพาะ NS bind_address ของ “localhost”
บ่งชี้ว่าพอร์ตการฟังถูกผูกไว้สำหรับใช้ในพื้นที่เท่านั้นในขณะที่ว่างเปล่า
ที่อยู่หรือ '*' ระบุว่าพอร์ตควรจะพร้อมใช้งานจากอินเทอร์เฟซทั้งหมด
-E ไฟล์บันทึก
ผนวกบันทึกการดีบักไปที่ ไฟล์บันทึก แทนที่จะเป็นข้อผิดพลาดมาตรฐาน
-e หนี_char
ตั้งค่าอักขระหลีกสำหรับเซสชันด้วย pty (ค่าเริ่มต้น: '~') ทางหนี
อักขระจะรู้จักเฉพาะที่จุดเริ่มต้นของบรรทัด ตัวละครหนี
ตามด้วยจุด ('.') ปิดการเชื่อมต่อ ตามด้วย control-Z ระงับ
การเชื่อมต่อ; และตามด้วยตัวมันเองส่งตัวละครหนีหนึ่งครั้ง การตั้งค่า
อักขระเป็น "ไม่มี" ปิดใช้งานการหลบหนีใด ๆ และทำให้เซสชันโปร่งใสอย่างสมบูรณ์
-F ไฟล์คอนฟิก
ระบุไฟล์คอนฟิกูเรชันต่อผู้ใช้ทางเลือก หากไฟล์การกำหนดค่าคือ
กำหนดบนบรรทัดคำสั่ง ไฟล์คอนฟิกูเรชันทั้งระบบ (/ etc / ssh / ssh_config)
จะถูกละเลย ค่าเริ่มต้นสำหรับไฟล์การกำหนดค่าต่อผู้ใช้คือ ~ / .ssh / config.
-f การร้องขอ SSH เพื่อไปที่พื้นหลังก่อนดำเนินการคำสั่ง สิ่งนี้มีประโยชน์หาก
SSH กำลังจะถามรหัสผ่านหรือข้อความรหัสผ่าน แต่ผู้ใช้ต้องการใน
พื้นหลัง. นี่หมายความว่า -n. วิธีที่แนะนำในการเริ่มโปรแกรม X11 จากระยะไกล
ไซต์มีบางอย่างเช่น SSH -f เจ้าภาพ xterm.
ถ้า ออกไปข้างหน้าล้มเหลว ตัวเลือกการกำหนดค่าถูกตั้งค่าเป็น "ใช่" จากนั้นไคลเอนต์
เริ่มต้นด้วย -f จะรอการส่งต่อพอร์ตระยะไกลทั้งหมดสำเร็จ
ก่อนวางตัวเองในพื้นหลัง
-G เกี่ยวข้องทั่วโลก SSH เพื่อพิมพ์การกำหนดค่าหลังจากประเมิน เจ้าของห้องพัก และ การจับคู่ บล็อกและ
ทางออก
-g อนุญาตให้โฮสต์ระยะไกลเชื่อมต่อกับพอร์ตที่ส่งต่อในเครื่อง หากใช้กับมัลติเพล็กซ์
การเชื่อมต่อ ดังนั้นต้องระบุตัวเลือกนี้ในกระบวนการหลัก
-I pkcs11
ระบุไลบรารีที่ใช้ร่วมกัน PKCS#11 SSH ควรใช้เพื่อสื่อสารกับ PKCS#11
โทเค็นที่ให้คีย์ RSA ส่วนตัวของผู้ใช้
-i ตัวตน_file
เลือกไฟล์ที่ข้อมูลประจำตัว (คีย์ส่วนตัว) สำหรับการรับรองความถูกต้องของคีย์สาธารณะ
กำลังอ่าน ค่าเริ่มต้นคือ ~/.ssh/ตัวตน สำหรับโปรโตคอลเวอร์ชัน 1 และ ~/.ssh/id_dsa,
~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 และ ~/.ssh/id_rsa สำหรับโปรโตคอลเวอร์ชัน 2
ไฟล์ข้อมูลประจำตัวอาจถูกระบุตามแต่ละโฮสต์ในไฟล์การกำหนดค่า
สามารถมีได้หลายแบบ -i ตัวเลือก (และหลายตัวตนที่ระบุใน
ไฟล์คอนฟิก) หากไม่ได้ระบุใบรับรองอย่างชัดเจนโดย
ไฟล์ใบรับรอง สั่ง SSH จะพยายามโหลดข้อมูลใบรับรองจาก
ชื่อไฟล์ที่ได้จากการต่อท้าย -cert.pub เพื่อระบุชื่อไฟล์
-K เปิดใช้งานการพิสูจน์ตัวตนตาม GSSAPI และการส่งต่อ (การมอบสิทธิ์) ของ GSSAPI
ข้อมูลประจำตัวไปยังเซิร์ฟเวอร์
-k ปิดใช้งานการส่งต่อ (การมอบหมาย) ของข้อมูลรับรอง GSSAPI ไปยังเซิร์ฟเวอร์
-L [bind_address:]พอร์ต:เจ้าภาพ:โฮสต์พอร์ต
-L [bind_address:]พอร์ต:รีโมท_ซ็อกเก็ต
-L local_socket:เจ้าภาพ:โฮสต์พอร์ต
-L local_socket:รีโมท_ซ็อกเก็ต
ระบุว่าการเชื่อมต่อกับพอร์ต TCP ที่กำหนดหรือซ็อกเก็ต Unix บน local
(ไคลเอนต์) โฮสต์จะถูกส่งต่อไปยังโฮสต์และพอร์ตที่กำหนดหรือซ็อกเก็ต Unix บน
ด้านที่ห่างไกล ใช้งานได้โดยการจัดสรรซ็อกเก็ตเพื่อฟัง TCP พอร์ต on
ด้านท้องถิ่น, ทางเลือกที่ถูกผูกไว้กับที่ระบุ bind_addressหรือไปยังซ็อกเก็ต Unix
เมื่อใดก็ตามที่มีการเชื่อมต่อกับพอร์ตหรือซ็อกเก็ตในเครื่อง การเชื่อมต่อจะเป็น
ส่งต่อผ่านช่องทางที่ปลอดภัยและเชื่อมต่อกับ เจ้าภาพ พอร์ต
โฮสต์พอร์ตหรือซ็อกเก็ต Unix รีโมท_ซ็อกเก็ต, จากเครื่องระยะไกล
นอกจากนี้ยังระบุการส่งต่อพอร์ตในไฟล์การกำหนดค่าได้อีกด้วย เพียง
superuser สามารถส่งต่อพอร์ตที่มีสิทธิพิเศษ ที่อยู่ IPv6 สามารถระบุได้โดย
แนบที่อยู่ในวงเล็บเหลี่ยม
โดยค่าเริ่มต้น พอร์ตท้องถิ่นถูกผูกไว้ตาม เกตเวย์พอร์ต การตั้งค่า
อย่างไรก็ตาม ความชัดเจน bind_address อาจใช้ผูกสัมพันธ์กับสิ่งจำเพาะ
ที่อยู่. bind_address ของ “localhost” แสดงว่าพอร์ตการรับฟังถูกผูกไว้
สำหรับใช้ในพื้นที่เท่านั้น ในขณะที่ที่อยู่ว่างหรือ '*' ระบุว่าพอร์ตควรเป็น
ได้จากอินเทอร์เฟซทั้งหมด
-l เข้าสู่ระบบ_name
ระบุผู้ใช้เพื่อเข้าสู่ระบบเหมือนบนเครื่องระยะไกล นอกจากนี้ยังอาจจะระบุ
บนพื้นฐานต่อโฮสต์ในไฟล์การกำหนดค่า
-M สถานที่ SSH ลูกค้าเข้าสู่โหมด "หลัก" สำหรับการแชร์การเชื่อมต่อ หลายรายการ -M
ตัวเลือกสถานที่ SSH เข้าสู่โหมด "มาสเตอร์" โดยต้องยืนยันก่อนทาส
การเชื่อมต่อได้รับการยอมรับ อ้างถึงคำอธิบายของ คอนโทรลมาสเตอร์ in
ssh_config(5) สำหรับรายละเอียด
-m mac_spec
รายการที่คั่นด้วยเครื่องหมายจุลภาคของอัลกอริธึม MAC (รหัสตรวจสอบข้อความ) ที่ระบุใน
ลำดับความชอบ ดู MAC คำสำคัญสำหรับข้อมูลเพิ่มเติม
-N อย่ารันคำสั่งระยะไกล สิ่งนี้มีประโยชน์สำหรับการส่งต่อพอร์ตเท่านั้น
-n เปลี่ยนทาง stdin จาก / dev / null (อันที่จริงป้องกันการอ่านจาก stdin) นี้ต้อง
จะใช้เมื่อ SSH ถูกเรียกใช้ในพื้นหลัง เคล็ดลับทั่วไปคือใช้สิ่งนี้เพื่อเรียกใช้ X11
โปรแกรมบนเครื่องระยะไกล ตัวอย่างเช่น, SSH -n shadows.cs.hut.fi emacs & จะ
เริ่ม emacs บน shadows.cs.hut.fi และการเชื่อมต่อ X11 จะเป็นไปโดยอัตโนมัติ
ส่งต่อผ่านช่องทางที่เข้ารหัส NS SSH โปรแกรมจะถูกวางในพื้นหลัง
(สิ่งนี้ใช้ไม่ได้หาก SSH ต้องขอรหัสผ่านหรือข้อความรหัสผ่าน ดูเพิ่มเติมที่
-f ตัวเลือก.)
-O ctl_cmd
ควบคุมกระบวนการต้นแบบมัลติเพล็กซ์การเชื่อมต่อที่ใช้งานอยู่ เมื่อ -O ตัวเลือกที่
ระบุ, the ctl_cmd อาร์กิวเมนต์ถูกตีความและส่งต่อไปยังกระบวนการหลัก
คำสั่งที่ใช้ได้คือ: “check” (ตรวจสอบว่ากระบวนการหลักกำลังทำงานอยู่), “forward”
(ร้องขอการส่งต่อโดยไม่ใช้คำสั่ง), “ยกเลิก” (ยกเลิกการส่งต่อ),
"ทางออก" (ขอให้นายออก) และ "หยุด" (ขอให้นายหยุด
ยอมรับคำขอมัลติเพล็กซ์เพิ่มเติม)
-o ตัวเลือก
สามารถใช้เพื่อให้ตัวเลือกในรูปแบบที่ใช้ในไฟล์การกำหนดค่า นี่คือ
มีประโยชน์สำหรับการระบุตัวเลือกที่ไม่มีแฟล็กบรรทัดคำสั่งแยกต่างหาก สำหรับ
รายละเอียดทั้งหมดของตัวเลือกที่แสดงด้านล่าง และค่าที่เป็นไปได้ โปรดดูที่
ssh_config(5)
AddKeysToAgent
ที่อยู่ครอบครัว
โหมดแบทช์
BindAddress
CanonicalDomains
CanonicalizeFallbackLocal
Canonicalizeชื่อโฮสต์
CanonicalizeMaxDots
CanonicalizePermittedCNAME
ไฟล์ใบรับรอง
การรับรองความถูกต้องการตอบสนองความท้าทาย
ตรวจสอบโฮสต์ไอพี
ตัวเลข
ยันต์
ล้างการส่งต่อทั้งหมด
การอัด
ระดับการบีบอัด
ความพยายามในการเชื่อมต่อ
เชื่อมต่อหมดเวลา
คอนโทรลมาสเตอร์
เส้นทางการควบคุม
ควบคุมคงอยู่
ไดนามิกฟอร์เวิร์ด
เอสเคปชาร์
ออกไปข้างหน้าล้มเหลว
แฮชลายนิ้วมือ
ส่งต่อตัวแทน
ส่งต่อX11
ForwardX11หมดเวลา
ส่งต่อ X11
เกตเวย์พอร์ต
GlobalKnownHostsไฟล์
GSSAPIการตรวจสอบสิทธิ์
GSSAPIDELegateCredentials
HashKnownHosts
เจ้าของห้องพัก
การรับรองความถูกต้องตามโฮสต์
ประเภทคีย์ตามโฮสต์
อัลกอริทึมของ HostKey
HostKeyนามแฝง
ชื่อโฮสต์
ไฟล์ข้อมูลประจำตัว
ข้อมูลประจำตัวเท่านั้น
IPQoS
KbdInteractiveAuthentication
KbdInteractiveDevices
Kexอัลกอริทึม
คำสั่งท้องถิ่น
ท้องถิ่นไปข้างหน้า
ระดับล็อก
MAC
การจับคู่
NoHostAuthentication สำหรับ Localhost
Number OfPasswordPrompts
การตรวจสอบรหัสผ่าน
ใบอนุญาต LocalCommand
ผู้ให้บริการ PKCS11
ท่าเรือ
การรับรองความถูกต้องที่ต้องการ
โปรโตคอล
พร็อกซีคำสั่ง
ProxyUseFdpass
PubkeyAcceptedKeyTypes
Pubkey การตรวจสอบสิทธิ์
รีคีย์ลิมิต
รีโมทฟอร์เวิร์ด
ขอTTY
โฮสต์ RSAAuthentication
การตรวจสอบ RSA
ส่งEnv
ServerAliveInterval
ServerAliveCountสูงสุด
สตรีม LocalBindMask
StreamLocalBindยกเลิกการเชื่อมโยง
การตรวจสอบคีย์โฮสต์ที่เข้มงวด
TCPKeepAlive
อุโมงค์
อุปกรณ์อุโมงค์
อัปเดตHostKeys
ใช้PrivilegedPort
ผู้ใช้งาน
ผู้ใช้ที่รู้จักโฮสต์ไฟล์
ตรวจสอบHostKeyDNS
VisualHostKey
XAuthLocation
-p พอร์ต
พอร์ตสำหรับเชื่อมต่อบนโฮสต์ระยะไกล สามารถระบุได้ตามแต่ละโฮสต์ใน
ไฟล์การกำหนดค่า
-Q แบบสอบถาม_ตัวเลือก
คำสั่ง SSH สำหรับอัลกอริธึมที่รองรับสำหรับเวอร์ชันที่ระบุ 2 ที่มีอยู่
คุณสมบัติคือ: ตัวเลข (รองรับการเข้ารหัสแบบสมมาตร) เข้ารหัส-auth (รองรับสมมาตร
ตัวเลขที่รองรับการเข้ารหัสที่รับรองความถูกต้อง) Mac (รองรับความสมบูรณ์ของข้อความ
รหัส) KEX (อัลกอริทึมการแลกเปลี่ยนคีย์) สำคัญ (ประเภทคีย์) คีย์ใบรับรอง (รหัสใบรับรอง
ประเภท) กุญแจธรรมดา (ประเภทคีย์ที่ไม่ใช่ใบรับรอง) และ โปรโตคอลรุ่น (รองรับSSH
เวอร์ชันโปรโตคอล)
-q โหมดเงียบ ทำให้ข้อความเตือนและการวินิจฉัยส่วนใหญ่ถูกระงับ
-R [bind_address:]พอร์ต:เจ้าภาพ:โฮสต์พอร์ต
-R [bind_address:]พอร์ต:local_socket
-R รีโมท_ซ็อกเก็ต:เจ้าภาพ:โฮสต์พอร์ต
-R รีโมท_ซ็อกเก็ต:local_socket
ระบุว่าการเชื่อมต่อกับพอร์ต TCP หรือซ็อกเก็ต Unix ที่กำหนดบนรีโมท
(เซิร์ฟเวอร์) โฮสต์จะถูกส่งต่อไปยังโฮสต์และพอร์ตที่กำหนดหรือซ็อกเก็ต Unix บน
ด้านท้องถิ่น ใช้งานได้โดยการจัดสรรซ็อกเก็ตเพื่อฟัง TCP พอร์ต หรือเพื่อ
ซ็อกเก็ต Unix ที่ด้านระยะไกล เมื่อใดก็ตามที่มีการเชื่อมต่อกับพอร์ตนี้หรือ
ซ็อกเก็ต Unix การเชื่อมต่อจะถูกส่งต่อผ่านช่องทางที่ปลอดภัยและการเชื่อมต่อ
ทำเพื่อ เจ้าภาพ พอร์ต โฮสต์พอร์ตหรือ local_socket, จากเครื่องท้องถิ่น
นอกจากนี้ยังระบุการส่งต่อพอร์ตในไฟล์การกำหนดค่าได้อีกด้วย ท่าเรือเอกสิทธิ์
สามารถส่งต่อได้เมื่อเข้าสู่ระบบในฐานะรูทบนเครื่องระยะไกลเท่านั้น ที่อยู่ IPv6
สามารถระบุได้โดยใส่ที่อยู่ในวงเล็บเหลี่ยม
ตามค่าเริ่มต้น ซ็อกเก็ตฟัง TCP บนเซิร์ฟเวอร์จะถูกผูกไว้กับลูปแบ็ค
อินเทอร์เฟซเท่านั้น อาจถูกแทนที่โดยการระบุ a bind_address. ว่างเปล่า
bind_addressหรือที่อยู่ '*' ระบุว่ารีโมตซ็อกเก็ตควรฟัง
อินเทอร์เฟซทั้งหมด การระบุรีโมท bind_address จะสำเร็จก็ต่อเมื่อเซิร์ฟเวอร์ของ
เกตเวย์พอร์ต เปิดใช้งานตัวเลือกแล้ว (ดู sshd_config(พ.ศ. 5)).
ถ้า พอร์ต อาร์กิวเมนต์คือ '0' พอร์ตการฟังจะถูกจัดสรรแบบไดนามิกบน
เซิร์ฟเวอร์และรายงานไปยังไคลเอนต์ในเวลาทำงาน เมื่อใช้ร่วมกับ -O ข้างหน้า
พอร์ตที่จัดสรรจะถูกพิมพ์ไปยังเอาต์พุตมาตรฐาน
-S ctl_path
ระบุตำแหน่งของซ็อกเก็ตควบคุมสำหรับการแชร์การเชื่อมต่อหรือสตริง
“ไม่มี” เพื่อปิดใช้งานการแชร์การเชื่อมต่อ อ้างถึงคำอธิบายของ เส้นทางการควบคุม และ
คอนโทรลมาสเตอร์ in ssh_config(5) สำหรับรายละเอียด
-s อาจใช้เพื่อร้องขอการเรียกใช้ระบบย่อยบนระบบระยะไกล ระบบย่อย
อำนวยความสะดวกในการใช้ SSH เป็นการขนส่งที่ปลอดภัยสำหรับแอปพลิเคชันอื่น (เช่น
SFTP(1)). ระบบย่อยถูกระบุเป็นคำสั่งระยะไกล
-T ปิดใช้งานการจัดสรรเทอร์มินัลหลอก
-t บังคับการจัดสรรเทอร์มินัลหลอก สามารถใช้เพื่อดำเนินการหน้าจอโดยพลการ
ตามโปรแกรมบนเครื่องระยะไกล ซึ่งมีประโยชน์มาก เช่น เมื่อใช้งาน
บริการเมนู. หลายรายการ -t ตัวเลือกบังคับให้มีการจัดสรร tty แม้ว่า SSH ไม่มีท้องถิ่น
ทีที
-V แสดงหมายเลขเวอร์ชันและออก
-v โหมดละเอียด สาเหตุ SSH เพื่อพิมพ์ข้อความการดีบักเกี่ยวกับความคืบหน้า นี่คือ
มีประโยชน์ในการดีบักปัญหาการเชื่อมต่อ การรับรองความถูกต้อง และการกำหนดค่า
แพลตฟอร์มที่หลากหลาย -v ตัวเลือกเพิ่มความฟุ่มเฟือย สูงสุดคือ 3
-W เจ้าภาพ:พอร์ต
ร้องขอให้ส่งต่ออินพุตและเอาต์พุตมาตรฐานบนไคลเอนต์ไปยัง เจ้าภาพ on พอร์ต
ผ่านช่องทางที่ปลอดภัย หมายถึง -N, -T, ออกไปข้างหน้าล้มเหลว และ
ล้างการส่งต่อทั้งหมด.
-w local_tun[:รีโมท_tun]
ร้องขอการส่งต่ออุปกรณ์ช่องสัญญาณด้วยที่ระบุ ถังใหญ่(4) อุปกรณ์ระหว่าง
ลูกค้า (local_tun) และเซิร์ฟเวอร์ (รีโมท_tun).
อุปกรณ์อาจถูกระบุด้วยรหัสตัวเลขหรือคำสำคัญ “ใดๆ” ซึ่งใช้
อุปกรณ์อุโมงค์ที่มีอยู่ถัดไป ถ้า รีโมท_tun ไม่ได้ระบุไว้ ค่าเริ่มต้นคือ "ใดๆ"
ดูเพิ่มเติมที่ อุโมงค์ และ อุปกรณ์อุโมงค์ คำสั่งใน ssh_config(5). ถ้า อุโมงค์
ไม่ได้ตั้งค่าคำสั่ง มันถูกตั้งค่าเป็นโหมดช่องสัญญาณเริ่มต้น ซึ่งก็คือ "จุดต่อจุด"
-X เปิดใช้งานการส่งต่อ X11 นอกจากนี้ยังสามารถระบุได้ตามแต่ละโฮสต์ในa
ไฟล์การกำหนดค่า
ควรเปิดใช้งานการส่งต่อ X11 ด้วยความระมัดระวัง ผู้ใช้ที่มีความสามารถในการเลี่ยงผ่าน
การอนุญาตไฟล์บนรีโมตโฮสต์ (สำหรับฐานข้อมูลการอนุญาต X ของผู้ใช้) สามารถ
เข้าถึงจอแสดงผล X11 ในเครื่องผ่านการเชื่อมต่อที่ส่งต่อ ผู้โจมตีอาจแล้ว
สามารถดำเนินกิจกรรมต่างๆ เช่น การตรวจสอบการกดแป้นพิมพ์
ด้วยเหตุนี้ การส่งต่อ X11 จึงอยู่ภายใต้ข้อจำกัดการขยาย X11 SECURITY
โดยค่าเริ่มต้น. โปรดดูที่ SSH -Y ตัวเลือกและ ส่งต่อ X11 คำสั่ง
in ssh_config(5) สำหรับข้อมูลเพิ่มเติม
(เฉพาะเดเบียน: การส่งต่อ X11 ไม่อยู่ภายใต้ส่วนขยายความปลอดภัย X11
ข้อจำกัดโดยค่าเริ่มต้น เนื่องจากมีโปรแกรมจำนวนมากเกินไปที่ขัดข้องในโหมดนี้
ตั้ง ส่งต่อ X11 ตัวเลือกที่จะ "ไม่" เพื่อคืนค่าพฤติกรรมต้นน้ำ นี้
อาจเปลี่ยนแปลงได้ในอนาคตขึ้นอยู่กับการปรับปรุงฝั่งไคลเอ็นต์)
-x ปิดใช้งานการส่งต่อ X11
-Y เปิดใช้งานการส่งต่อ X11 ที่เชื่อถือได้ การส่งต่อ X11 ที่เชื่อถือได้จะไม่อยู่ภายใต้
การควบคุมส่วนขยาย X11 SECURITY
(เฉพาะเดเบียน: ตัวเลือกนี้ไม่ทำอะไรเลยในการกำหนดค่าเริ่มต้น: มันคือ
เทียบเท่ากับ “ส่งต่อ X11 ใช่” ซึ่งเป็นค่าเริ่มต้นตามที่อธิบายไว้ข้างต้น ชุด
ส่งต่อ X11 ตัวเลือกที่จะ "ไม่" เพื่อคืนค่าพฤติกรรมต้นน้ำ นี้อาจจะ
การเปลี่ยนแปลงในอนาคตขึ้นอยู่กับการปรับปรุงฝั่งไคลเอ็นต์)
-y ส่งข้อมูลบันทึกโดยใช้ syslog(3) โมดูลระบบ โดยค่าเริ่มต้นข้อมูลนี้
ถูกส่งไปยัง stderr
SSH อาจได้รับข้อมูลการกำหนดค่าเพิ่มเติมจากไฟล์การกำหนดค่าต่อผู้ใช้และ a
ไฟล์การกำหนดค่าทั้งระบบ รูปแบบไฟล์และตัวเลือกการกำหนดค่ามีอธิบายไว้ใน
ssh_config(5)
การตรวจสอบ
ไคลเอนต์ OpenSSH SSH รองรับโปรโตคอล SSH 1 และ 2 ค่าเริ่มต้นคือการใช้โปรโตคอล2
เท่านั้นแม้ว่าจะสามารถเปลี่ยนแปลงได้ผ่านทาง โปรโตคอล ตัวเลือกใน ssh_config(5) หรือ -1 และ -2
ตัวเลือก (ดูด้านบน) ไม่ควรใช้โปรโตคอล 1 และเสนอให้สนับสนุนเฉพาะรุ่นดั้งเดิมเท่านั้น
อุปกรณ์ มันทนทุกข์ทรมานจากจุดอ่อนในการเข้ารหัสจำนวนหนึ่งและไม่รองรับหลาย ๆ อย่าง
คุณสมบัติขั้นสูงที่มีให้สำหรับโปรโตคอล 2
วิธีการที่ใช้ได้สำหรับการรับรองความถูกต้องคือ: การรับรองความถูกต้องตาม GSSAPI, แบบโฮสต์
การรับรองความถูกต้อง การรับรองความถูกต้องของกุญแจสาธารณะ การตรวจสอบการตอบคำถาม และรหัสผ่าน
การรับรองความถูกต้อง ลองใช้วิธีการตรวจสอบสิทธิ์ตามลำดับที่ระบุไว้ด้านบนแม้ว่า
การรับรองความถูกต้องที่ต้องการ สามารถใช้เพื่อเปลี่ยนลำดับเริ่มต้น
การรับรองความถูกต้องตามโฮสต์ทำงานดังนี้: หากเครื่องที่ผู้ใช้เข้าสู่ระบบมีอยู่ในรายการ
in /etc/hosts.equiv or /etc/ssh/shosts.equiv บนเครื่องระยะไกล และชื่อผู้ใช้คือ
เหมือนกันทั้งสองด้านหรือถ้าไฟล์ ~/.rhosts or ~/.shosts มีอยู่ในบ้านของผู้ใช้
ไดเร็กทอรีบนเครื่องระยะไกลและมีบรรทัดที่มีชื่อเครื่องไคลเอ็นต์
และชื่อของผู้ใช้ในเครื่องนั้น ถือว่าผู้ใช้เข้าสู่ระบบ นอกจากนี้
เซิฟเวอร์ ต้อง สามารถตรวจสอบรหัสโฮสต์ของลูกค้าได้ (ดูคำอธิบายของ
/etc/ssh/ssh_known_hosts และ ~/.ssh/known_hostsด้านล่าง) เพื่อให้เข้าสู่ระบบได้ นี้
วิธีการตรวจสอบสิทธิ์จะปิดช่องโหว่ด้านความปลอดภัยเนื่องจากการปลอมแปลง IP, การปลอมแปลง DNS และการกำหนดเส้นทาง
การปลอมแปลง [หมายเหตุถึงผู้ดูแลระบบ: /etc/hosts.equiv, ~/.rhostsและ rlogin/rsh
โดยทั่วไปโปรโตคอลจะไม่ปลอดภัยโดยเนื้อแท้และควรปิดใช้งานหากต้องการความปลอดภัย]
การตรวจสอบความถูกต้องของคีย์สาธารณะทำงานดังนี้: โครงร่างนี้ใช้การเข้ารหัสคีย์สาธารณะ
ใช้ระบบเข้ารหัสที่เข้ารหัสและถอดรหัสโดยใช้คีย์แยกกัน และมันคือ
เป็นไปไม่ได้ที่จะได้รับคีย์ถอดรหัสจากคีย์การเข้ารหัส แนวคิดก็คือผู้ใช้แต่ละคน
สร้างคู่คีย์สาธารณะ/ส่วนตัวเพื่อวัตถุประสงค์ในการตรวจสอบสิทธิ์ เซิฟเวอร์รู้ใจคนทั่วไป
คีย์ และมีเพียงผู้ใช้เท่านั้นที่รู้คีย์ส่วนตัว SSH ใช้การพิสูจน์ตัวตนคีย์สาธารณะ
โปรโตคอลโดยอัตโนมัติ โดยใช้อัลกอริทึม DSA, ECDSA, Ed25519 หรือ RSA ประวัติศาสตร์
ส่วนหนึ่งของ SSL(8) (บนระบบที่ไม่ใช่ OpenBSD ดู
http://www.openbsd.org/cgi-bin/man.cgi?query=ssl&sektion=8#HISTORY) มีบทสรุป
การอภิปรายเกี่ยวกับอัลกอริทึม DSA และ RSA
ไฟล์ ~/.ssh/authorized_keys แสดงรายการกุญแจสาธารณะที่ได้รับอนุญาตให้เข้าสู่ระบบ
เมื่อผู้ใช้เข้าสู่ระบบ SSH โปรแกรมบอกเซิร์ฟเวอร์ว่าต้องการใช้คู่คีย์ใด
สำหรับการรับรองความถูกต้อง ลูกค้าพิสูจน์ว่ามีสิทธิ์เข้าถึงคีย์ส่วนตัวและเซิร์ฟเวอร์
ตรวจสอบว่าคีย์สาธารณะที่เกี่ยวข้องได้รับอนุญาตให้ยอมรับบัญชี
ผู้ใช้สร้างคู่คีย์ของตนเองโดยการเรียกใช้ SSH-keygen(1). นี้เก็บคีย์ส่วนตัวใน
~/.ssh/ตัวตน (โปรโตคอล 1) ~/.ssh/id_dsa (ดีเอสเอ) ~/.ssh/id_ecdsa (อีซีดีเอสเอ)
~/.ssh/id_ed25519 (ศ.25519) หรือ ~/.ssh/id_rsa (RSA) และจัดเก็บกุญแจสาธารณะใน
~/.ssh/identity.pub (โปรโตคอล 1) ~/.ssh/id_dsa.pub (ดีเอสเอ) ~/.ssh/id_ecdsa.pub (อีซีดีเอสเอ)
~/.ssh/id_ed25519.pub (ศ.25519) หรือ ~ / .ssh / id_rsa.pub (RSA) ในโฮมไดเร็กทอรีของผู้ใช้
ผู้ใช้ควรคัดลอกกุญแจสาธารณะไปที่ ~/.ssh/authorized_keys ในโฮมไดเร็กตอรี่ของเขา/เธอ
บนเครื่องระยะไกล NS ได้รับอนุญาต_keys ไฟล์ที่สอดคล้องกับธรรมดา ~/.rhosts
ไฟล์และมีหนึ่งคีย์ต่อบรรทัด แม้ว่าบรรทัดจะยาวมากก็ตาม หลังจากนี้ผู้ใช้สามารถ
เข้าสู่ระบบโดยไม่ต้องให้รหัสผ่าน
รูปแบบการรับรองความถูกต้องของกุญแจสาธารณะมีอยู่ในรูปของใบรับรอง
การรับรองความถูกต้อง: แทนที่จะใช้ชุดกุญแจสาธารณะ/ส่วนตัว ใบรับรองที่ลงนามแล้วจะถูกใช้ นี้
มีข้อได้เปรียบที่หน่วยงานออกใบรับรองที่เชื่อถือได้เพียงแห่งเดียวสามารถใช้แทนได้หลายหน่วยงาน
กุญแจสาธารณะ/ส่วนตัว ดูส่วนใบรับรองของ SSH-keygen(1) สำหรับข้อมูลเพิ่มเติม
วิธีที่สะดวกที่สุดในการใช้กุญแจสาธารณะหรือการรับรองความถูกต้องของใบรับรองอาจใช้ an
ตัวแทนการรับรองความถูกต้อง ดู ตัวแทน ssh(1) และ (ทางเลือก) AddKeysToAgent คำสั่งใน
ssh_config(5) สำหรับข้อมูลเพิ่มเติม
การตรวจสอบการตอบสนองต่อการท้าทายทำงานดังนี้: เซิร์ฟเวอร์ส่งคำสั่งโดยพลการ
ข้อความ "ท้าทาย" และพร้อมท์ให้ตอบกลับ ตัวอย่างการตรวจสอบการตอบคำถาม
รวมการพิสูจน์ตัวตน BSD (ดู เข้าสู่ระบบ.conf(5)) และ PAM (บางระบบที่ไม่ใช่ OpenBSD)
สุดท้าย หากวิธีการรับรองความถูกต้องแบบอื่นๆ ล้มเหลว SSH แจ้งให้ผู้ใช้ป้อนรหัสผ่าน NS
รหัสผ่านจะถูกส่งไปยังโฮสต์ระยะไกลเพื่อตรวจสอบ อย่างไรก็ตามเนื่องจากการสื่อสารทั้งหมดเป็น
เข้ารหัสลับ รหัสผ่านไม่สามารถมองเห็นได้โดยบุคคลที่กำลังฟังบนเครือข่าย
SSH ดูแลรักษาและตรวจสอบฐานข้อมูลที่มีการระบุตัวตนสำหรับโฮสต์ทั้งหมดโดยอัตโนมัติ
ที่เคยใช้กับ คีย์โฮสต์ถูกเก็บไว้ใน ~/.ssh/known_hosts ในบ้านของผู้ใช้
ไดเร็กทอรี นอกจากนี้ไฟล์ /etc/ssh/ssh_known_hosts จะถูกตรวจสอบโดยอัตโนมัติสำหรับ
โฮสต์ที่รู้จัก โฮสต์ใหม่จะถูกเพิ่มลงในไฟล์ของผู้ใช้โดยอัตโนมัติ หากเป็นเจ้าบ้าน
การระบุตัวตนไม่เคยเปลี่ยนแปลง SSH เตือนเกี่ยวกับสิ่งนี้และปิดใช้งานการตรวจสอบรหัสผ่านไปยัง
ป้องกันการปลอมแปลงเซิร์ฟเวอร์หรือการโจมตีแบบคนกลาง ซึ่งอาจใช้เพื่อ
หลีกเลี่ยงการเข้ารหัส NS การตรวจสอบคีย์โฮสต์ที่เข้มงวด สามารถใช้ตัวเลือกเพื่อควบคุมการเข้าสู่ระบบ
ไปยังเครื่องที่ไม่ทราบรหัสโฮสต์หรือมีการเปลี่ยนแปลง
เมื่อเซิร์ฟเวอร์ยอมรับข้อมูลประจำตัวของผู้ใช้แล้ว เซิร์ฟเวอร์จะดำเนินการ
กำหนดคำสั่งในเซสชันที่ไม่มีการโต้ตอบ หรือหากไม่มีการระบุคำสั่ง ให้เข้าสู่ระบบ
เครื่องและให้เชลล์ปกติแก่ผู้ใช้เป็นเซสชันแบบโต้ตอบ ทุกการสื่อสาร
ด้วยคำสั่งระยะไกลหรือเชลล์จะถูกเข้ารหัสโดยอัตโนมัติ
หากมีการร้องขอเซสชันแบบโต้ตอบ SSH โดยค่าเริ่มต้นจะขอเพียงเทอร์มินัลหลอก
(pty) สำหรับเซสชันแบบโต้ตอบเมื่อไคลเอ็นต์มี ธง -T และ -t สามารถใช้ในการ
แทนที่พฤติกรรมนี้
หากมีการจัดสรรเทอร์มินัลหลอก ผู้ใช้อาจใช้อักขระหลีกที่ระบุไว้ด้านล่าง
หากไม่มีการจัดสรรเทอร์มินัลหลอก เซสชันจะโปร่งใสและสามารถใช้เพื่อ
ถ่ายโอนข้อมูลไบนารีได้อย่างน่าเชื่อถือ ในระบบส่วนใหญ่ การตั้งค่าอักขระหลีกเป็น "ไม่มี" จะ
ทำให้เซสชันโปร่งใสแม้ว่าจะใช้ tty ก็ตาม
เซสชั่นสิ้นสุดลงเมื่อคำสั่งหรือเชลล์บนเครื่องระยะไกลออกและ X11 และ .ทั้งหมด
การเชื่อมต่อ TCP ถูกปิด
ESCAPE ตัวอักษร
เมื่อมีการร้องขอเทอร์มินัลเทียม SSH รองรับฟังก์ชั่นมากมายผ่าน
การใช้อักขระหนี
อักขระตัวหนอนตัวเดียวสามารถส่งเป็น ~~ หรือตามตัวหนอนด้วยอักขระอื่น ๆ
กว่าที่อธิบายไว้ด้านล่าง อักขระหลีกต้องขึ้นบรรทัดใหม่เสมอถึงจะเป็น
ตีความว่าเป็นกรณีพิเศษ อักขระหลีกสามารถเปลี่ยนแปลงได้ในไฟล์การกำหนดค่าโดยใช้
เอสเคปชาร์ คำสั่งการกำหนดค่าหรือบนบรรทัดคำสั่งโดย -e ตัวเลือก
Escapes ที่รองรับ (สมมติว่าค่าเริ่มต้น '~') คือ:
~. ปลด
~^ซ พื้นหลัง SSH.
~# รายชื่อการเชื่อมต่อที่ส่งต่อ
~& พื้นหลัง SSH เมื่อออกจากระบบเมื่อรอการเชื่อมต่อที่ส่งต่อ / เซสชัน X11 ถึง
ยุติ
~? แสดงรายการอักขระหลีก
~B ส่ง BREAK ไปยังระบบรีโมต (มีประโยชน์เฉพาะเมื่อเพียร์สนับสนุน)
~C เปิดบรรทัดคำสั่ง ขณะนี้อนุญาตให้เพิ่มการส่งต่อพอร์ตโดยใช้
-L, -R และ -D ตัวเลือก (ดูด้านบน) นอกจากนี้ยังช่วยให้การยกเลิกที่มีอยู่
การส่งต่อพอร์ตด้วย -เคแอล[bind_address:]พอร์ต สำหรับท้องถิ่น -KR[bind_address:]พอร์ต สำหรับ
ระยะไกลและ -เคดี[bind_address:]พอร์ต สำหรับการส่งต่อพอร์ตแบบไดนามิก !คำสั่ง ช่วยให้
ผู้ใช้เพื่อรันคำสั่งท้องถิ่นถ้า ใบอนุญาต LocalCommand เปิดใช้งานตัวเลือกใน
ssh_config(5). มีวิธีใช้พื้นฐานโดยใช้ปุ่ม -h ตัวเลือก
~R ร้องขอการเชื่อมต่อใหม่ (มีประโยชน์เฉพาะเมื่อเพียร์สนับสนุน)
~V ลดการใช้คำฟุ่มเฟือย (ระดับล็อก) เมื่อมีการเขียนข้อผิดพลาดไปยัง stderr
~v เพิ่มความฟุ่มเฟือย (ระดับล็อก) เมื่อมีการเขียนข้อผิดพลาดไปยัง stderr
TCP ส่งต่อ
การส่งต่อการเชื่อมต่อ TCP โดยพลการผ่านช่องทางที่ปลอดภัยสามารถระบุได้บน
บรรทัดคำสั่งหรือในไฟล์คอนฟิกูเรชัน แอปพลิเคชั่นหนึ่งที่เป็นไปได้ของการส่งต่อ TCP คือ
การเชื่อมต่อที่ปลอดภัยกับเมลเซิร์ฟเวอร์ อีกอันกำลังผ่านไฟร์วอลล์
ในตัวอย่างด้านล่าง เราดูที่การเข้ารหัสการสื่อสารระหว่างไคลเอ็นต์ IRC และเซิร์ฟเวอร์
แม้ว่าเซิร์ฟเวอร์ IRC จะไม่สนับสนุนการสื่อสารที่เข้ารหัสโดยตรง งานนี้
ดังต่อไปนี้: ผู้ใช้เชื่อมต่อกับโฮสต์ระยะไกลโดยใช้ SSH, ระบุพอร์ตที่จะใช้กับ
ส่งต่อการเชื่อมต่อไปยังเซิร์ฟเวอร์ระยะไกล หลังจากนั้นสามารถเริ่มบริการได้
ซึ่งจะถูกเข้ารหัสบนเครื่องไคลเอนต์โดยเชื่อมต่อกับพอร์ตภายในเครื่องเดียวกันและ SSH
จะเข้ารหัสและส่งต่อการเชื่อมต่อ
ตัวอย่างต่อไปนี้อุโมงค์เซสชัน IRC จากเครื่องไคลเอนต์ “127.0.0.1” (localhost) ถึง
เซิร์ฟเวอร์ระยะไกล “server.example.com”:
$ ssh -f -L 1234:localhost:6667 server.example.com นอน 10
$ irc -c '#users' -p 1234 pinky 127.0.0.1
อุโมงค์นี้เชื่อมต่อกับเซิร์ฟเวอร์ IRC “server.example.com”, เข้าร่วมช่อง “#users”,
ชื่อเล่น “พิ้งกี้” ใช้พอร์ต 1234 ไม่สำคัญว่าจะใช้พอร์ตไหน ตราบใดที่เป็น
มากกว่า 1023 (จำไว้ว่ามีเพียงรูทเท่านั้นที่สามารถเปิดซ็อกเก็ตบนพอร์ตที่มีสิทธิพิเศษ) และไม่
ขัดแย้งกับพอร์ตใด ๆ ที่มีการใช้งานอยู่แล้ว การเชื่อมต่อถูกส่งไปยังพอร์ต 6667 บน
เซิร์ฟเวอร์ระยะไกล เนื่องจากเป็นพอร์ตมาตรฐานสำหรับบริการ IRC
เค้ก -f พื้นหลังตัวเลือก SSH และมีการระบุคำสั่งระยะไกล “sleep 10” เพื่อให้
ระยะเวลา (ในตัวอย่าง 10 วินาที) ในการเริ่มบริการที่จะทันเนล
หากไม่มีการเชื่อมต่อภายในเวลาที่กำหนด SSH จะออก
X11 ส่งต่อ
ถ้า ส่งต่อX11 ตัวแปรถูกตั้งค่าเป็น “ใช่” (หรือดูคำอธิบายของ -X, -xและ -Y
ตัวเลือกด้านบน) และผู้ใช้กำลังใช้ X11 (ตั้งค่าตัวแปรสภาพแวดล้อม DISPLAY) ตัว
การเชื่อมต่อกับจอแสดงผล X11 จะถูกส่งต่อโดยอัตโนมัติไปยังฝั่งระยะไกลในลักษณะดังกล่าว
ว่าโปรแกรม X11 ใด ๆ ที่เริ่มต้นจากเชลล์ (หรือคำสั่ง) จะผ่านการเข้ารหัส
ช่องสัญญาณและการเชื่อมต่อกับเซิร์ฟเวอร์ X จริงจะทำจากเครื่องท้องถิ่น NS
ผู้ใช้ไม่ควรตั้งค่า DISPLAY ด้วยตนเอง การส่งต่อการเชื่อมต่อ X11 สามารถกำหนดค่าได้บน
บรรทัดคำสั่งหรือในไฟล์คอนฟิกูเรชัน
ค่า DISPLAY ที่กำหนดโดย SSH จะชี้ไปที่เครื่องเซิร์ฟเวอร์ แต่มีหมายเลขที่แสดง
มากกว่าศูนย์ เป็นเรื่องปกติและเกิดขึ้นเพราะ SSH สร้าง "พร็อกซี" X เซิร์ฟเวอร์บน
เครื่องเซิร์ฟเวอร์สำหรับส่งต่อการเชื่อมต่อผ่านช่องทางที่เข้ารหัส
SSH จะตั้งค่าข้อมูล Xauthority บนเครื่องเซิร์ฟเวอร์โดยอัตโนมัติ เพื่อจุดประสงค์นี้,
มันจะสร้างคุกกี้การให้สิทธิ์แบบสุ่ม เก็บไว้ใน Xauthority บนเซิร์ฟเวอร์และ
ตรวจสอบว่าการเชื่อมต่อที่ส่งต่อมีคุกกี้นี้และแทนที่ด้วยคุกกี้จริง
เมื่อเปิดการเชื่อมต่อ คุกกี้การตรวจสอบสิทธิ์จริงจะไม่ถูกส่งไปยังเซิร์ฟเวอร์
เครื่อง (และไม่มีการส่งคุกกี้ในที่ราบ)
ถ้า ส่งต่อตัวแทน ตัวแปรถูกตั้งค่าเป็น “ใช่” (หรือดูคำอธิบายของ -A และ -a
ตัวเลือกด้านบน) และผู้ใช้กำลังใช้ตัวแทนการตรวจสอบ การเชื่อมต่อกับตัวแทนคือ
ส่งต่อไปยังฝั่งระยะไกลโดยอัตโนมัติ
กำลังตรวจสอบ HOST แป้น
เมื่อเชื่อมต่อกับเซิร์ฟเวอร์เป็นครั้งแรก ลายนิ้วมือของกุญแจสาธารณะของเซิร์ฟเวอร์คือ
นำเสนอต่อผู้ใช้ (เว้นแต่ตัวเลือก การตรวจสอบคีย์โฮสต์ที่เข้มงวด ถูกปิดใช้งาน)
สามารถกำหนดลายนิ้วมือได้โดยใช้ SSH-keygen(1):
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
หากรู้ลายนิ้วมือแล้วสามารถจับคู่และรับกุญแจได้หรือ
ปฏิเสธ หากมีเฉพาะลายนิ้วมือดั้งเดิม (MD5) สำหรับเซิร์ฟเวอร์ SSH-keygen(1)
-E อาจใช้ตัวเลือกเพื่อดาวน์เกรดอัลกอริธึมลายนิ้วมือให้ตรงกัน
เนื่องจากความยากในการเปรียบเทียบคีย์โฮสต์เพียงแค่ดูสตริงลายนิ้วมือ
นอกจากนี้ยังรองรับการเปรียบเทียบโฮสต์คีย์ด้วยสายตาโดยใช้ สุ่ม ศิลปะ. โดยการตั้งค่า
VisualHostKey ตัวเลือก "ใช่" จะแสดงกราฟิก ASCII ขนาดเล็กทุกครั้งที่เข้าสู่ระบบa
เซิร์ฟเวอร์ ไม่ว่าเซสชันนั้นจะโต้ตอบหรือไม่ก็ตาม โดยการเรียนรู้รูปแบบ a
เซิร์ฟเวอร์ที่รู้จักสร้างผู้ใช้สามารถค้นหาได้อย่างง่ายดายว่าคีย์โฮสต์มีการเปลี่ยนแปลงเมื่อ
รูปแบบที่แตกต่างอย่างสิ้นเชิงจะปรากฏขึ้น เพราะลวดลายเหล่านี้ไม่คลุมเครือ
แต่ลายที่ดูคล้ายกับลายที่จำได้ก็ให้แต่ความดี
ความน่าจะเป็นที่คีย์โฮสต์จะเหมือนกัน ไม่รับประกันการพิสูจน์
ในการรับรายชื่อลายนิ้วมือพร้อมกับงานศิลปะแบบสุ่มสำหรับโฮสต์ที่รู้จักทั้งหมด
สามารถใช้บรรทัดคำสั่งต่อไปนี้:
$ ssh-keygen -lv -f ~/.ssh/known_hosts
หากไม่ทราบลายนิ้วมือ จะมีวิธีตรวจสอบอื่นให้เลือก: SSH
ลายนิ้วมือตรวจสอบโดย DNS บันทึกทรัพยากรเพิ่มเติม (RR) SSHFP ถูกเพิ่มในa
zonefile และไคลเอ็นต์ที่เชื่อมต่อสามารถจับคู่ลายนิ้วมือกับคีย์
นำเสนอ
ในตัวอย่างนี้ เรากำลังเชื่อมต่อไคลเอ็นต์กับเซิร์ฟเวอร์ "host.example.com" SSHFP
อันดับแรกควรเพิ่มระเบียนทรัพยากรใน zonefile สำหรับ host.example.com:
$ ssh-keygen -r host.example.com
จะต้องเพิ่มบรรทัดเอาต์พุตในโซนไฟล์ เพื่อตรวจสอบว่าโซนกำลังตอบรับ
แบบสอบถามลายนิ้วมือ:
$ ขุด -t SSHFP host.example.com
ในที่สุดไคลเอนต์เชื่อมต่อ:
$ ssh -o "VerifyHostKeyDNS ถาม" host.example.com
[ ... ]
พบลายนิ้วมือของโฮสต์คีย์ที่ตรงกันใน DNS
แน่ใจไหมว่าต้องการเชื่อมต่อ (ใช่ / ไม่ใช่)
ดู ตรวจสอบHostKeyDNS ตัวเลือกใน ssh_config(5) สำหรับข้อมูลเพิ่มเติม
SSH-ฐาน เสมือน ส่วนตัว NETWORKS
SSH มีการรองรับช่องสัญญาณ Virtual Private Network (VPN) โดยใช้ ถังใหญ่(4) เครือข่าย
อุปกรณ์เทียมช่วยให้สองเครือข่ายสามารถเชื่อมต่อได้อย่างปลอดภัย NS sshd_config(5)
ตัวเลือกการกำหนดค่า อนุญาตอุโมงค์ ควบคุมว่าเซิร์ฟเวอร์สนับสนุนสิ่งนี้หรือไม่และอะไร
ระดับ (การรับส่งข้อมูลเลเยอร์ 2 หรือ 3)
ตัวอย่างต่อไปนี้จะเชื่อมต่อเครือข่ายไคลเอ็นต์ 10.0.50.0/24 กับเครือข่ายระยะไกล
10.0.99.0/24 โดยใช้การเชื่อมต่อแบบจุดต่อจุดจาก 10.1.1.1 ถึง 10.1.1.2 โดยมีเงื่อนไขว่า
เซิร์ฟเวอร์ SSH ที่ทำงานบนเกตเวย์ไปยังเครือข่ายระยะไกลที่ 192.168.1.15 อนุญาต
เกี่ยวกับลูกค้า:
# ssh -f -w 0:1 192.168.1.15 จริง
# ifconfig tun0 10.1.1.1 10.1.1.2 เน็ตมาสก์ 255.255.255.252
# เส้นทางเพิ่ม 10.0.99.0/24 10.1.1.2
บนเซิร์ฟเวอร์:
# ifconfig tun1 10.1.1.2 10.1.1.1 เน็ตมาสก์ 255.255.255.252
# เส้นทางเพิ่ม 10.0.50.0/24 10.1.1.1
การเข้าถึงไคลเอ็นต์อาจได้รับการปรับให้ละเอียดยิ่งขึ้นผ่านทาง /root/.ssh/authorized_keys ไฟล์ (ดูด้านล่าง)
และ สิทธิ์รูทเข้าสู่ระบบ ตัวเลือกเซิร์ฟเวอร์ รายการต่อไปนี้จะอนุญาตให้เชื่อมต่อบน
ถังใหญ่(4) อุปกรณ์ 1 จากผู้ใช้ "jane" และบนอุปกรณ์ tun 2 จากผู้ใช้ "john" if สิทธิ์รูทเข้าสู่ระบบ is
ตั้งค่าเป็น "forced-commands-only":
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... เจน
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... จอห์น
เนื่องจากการตั้งค่าที่ใช้ SSH ทำให้เกิดค่าใช้จ่ายที่พอสมควร จึงอาจเหมาะสมกว่าสำหรับ
การตั้งค่าชั่วคราว เช่น VPN ไร้สาย ให้บริการ VPN แบบถาวรมากขึ้นโดย
เครื่องมือเช่น ipsecctl(8) และ isakmpd(8)
และพวกเรา
SSH ปกติจะตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
DISPLAY ตัวแปร DISPLAY ระบุตำแหน่งของเซิร์ฟเวอร์ X11 มันคือ
กำหนดโดยอัตโนมัติโดย SSH เพื่อชี้ไปที่ค่าของรูปแบบ “ชื่อโฮสต์:n”,
โดยที่ “ชื่อโฮสต์” ระบุโฮสต์ที่เชลล์ทำงาน และ 'n' คือ
จำนวนเต็ม ≥ 1 SSH ใช้ค่าพิเศษนี้เพื่อส่งต่อ X11
การเชื่อมต่อผ่านช่องทางที่ปลอดภัย ปกติผู้ใช้ไม่ควรตั้งค่า
แสดงผลอย่างชัดเจน เนื่องจากจะทำให้การเชื่อมต่อ X11 ไม่ปลอดภัย
(และจะต้องให้ผู้ใช้คัดลอกการอนุญาตที่จำเป็นด้วยตนเอง
คุ้กกี้).
หน้าแรก ตั้งค่าเป็นพาธของโฮมไดเร็กทอรีของผู้ใช้
LOGNAME คำพ้องสำหรับ USER; กำหนดความเข้ากันได้กับระบบที่ใช้สิ่งนี้
ตัวแปร
MAIL ตั้งค่าเป็นเส้นทางของกล่องจดหมายของผู้ใช้
PATH ตั้งค่าเป็น PATH เริ่มต้นตามที่ระบุเมื่อคอมไพล์ SSH.
SSH_ASKPASS ถ้า SSH ต้องการข้อความรหัสผ่าน มันจะอ่านข้อความรหัสผ่านจาก
เทอร์มินัลปัจจุบันหากเรียกใช้จากเทอร์มินัล ถ้า SSH ไม่ได้มี
เทอร์มินัลที่เชื่อมโยงกับมัน แต่ตั้งค่า DISPLAY และ SSH_ASKPASS มัน
จะรันโปรแกรมที่ระบุโดย SSH_ASKPASS และเปิด X11
หน้าต่างสำหรับอ่านข้อความรหัสผ่าน สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อ
โทร SSH จาก .xsession หรือสคริปต์ที่เกี่ยวข้อง (โปรดทราบว่าในบางส่วน
เครื่องอาจจำเป็นต้องเปลี่ยนเส้นทางอินพุตจาก / dev / null ไปยัง
ทำให้งานนี้.)
SSH_AUTH_SOCK ระบุเส้นทางของซ็อกเก็ตโดเมน UNIX ที่ใช้ในการสื่อสารกับ
ตัวแทน.
SSH_CONNECTION ระบุไคลเอนต์และเซิร์ฟเวอร์สิ้นสุดการเชื่อมต่อ ตัวแปร
มีค่าที่คั่นด้วยช่องว่างสี่ค่า: ที่อยู่ IP ไคลเอนต์, พอร์ตไคลเอนต์
หมายเลข ที่อยู่ IP ของเซิร์ฟเวอร์ และหมายเลขพอร์ตของเซิร์ฟเวอร์
SSH_ORIGINAL_COMMAND ตัวแปรนี้มีบรรทัดรับคำสั่งดั้งเดิมหากคำสั่งบังคับ
ถูกดำเนินการ สามารถใช้เพื่อแยกอาร์กิวเมนต์ดั้งเดิม
SSH_TTY ตั้งค่าเป็นชื่อของ tty (เส้นทางไปยังอุปกรณ์) ที่เกี่ยวข้อง
ด้วยเชลล์หรือคำสั่งปัจจุบัน หากเซสชันปัจจุบันไม่มี tty
ตัวแปรนี้ไม่ได้ตั้งค่าไว้
TZ ตัวแปรนี้ถูกตั้งค่าให้ระบุเขตเวลาปัจจุบันหากตั้งค่าไว้
เมื่อ daemon เริ่มทำงาน (เช่น daemon ส่งค่าไปที่
การเชื่อมต่อใหม่)
USER ตั้งค่าเป็นชื่อของผู้ใช้ที่เข้าสู่ระบบ
นอกจากนี้ยังมี SSH อ่าน ~/.ssh/environmentและเพิ่มบรรทัดรูปแบบ “VARNAME=value” เป็น
สภาพแวดล้อมหากมีไฟล์อยู่และผู้ใช้ได้รับอนุญาตให้เปลี่ยนสภาพแวดล้อมได้ สำหรับ
ข้อมูลเพิ่มเติมโปรดดูที่ อนุญาตผู้ใช้สภาพแวดล้อม ตัวเลือกใน sshd_config(5)
ใช้ ssh ออนไลน์โดยใช้บริการ onworks.net