SSH
คุณสามารถใช้โปรโตคอล SSH เป็นเซิร์ฟเวอร์พร็อกซี ซึ่งเทียบเท่ากับ ssh -D
ไวยากรณ์โปรไฟล์:
- การยืนยันตัวตนด้วยรหัสผ่าน
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw
- การยืนยันตัวตนด้วยคีย์สาธารณะ
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, private-key=base64(privateKeyFileContent)
- โปรดทราบว่าคุณต้องใช้ base64 เพื่อเข้ารหัสไฟล์คีย์ส่วนตัวทั้งหมดอีกครั้ง แม้ว่าไฟล์คีย์ส่วนตัวจะใช้การเข้ารหัส base64 เองก็ตาม ค่านี้ต้องอยู่ในบรรทัดเดียว ดังนั้นให้สั่ง
OpenSSLไม่ให้ตัดบรรทัดผลลัพธ์ (-A):
// OpenSSL 1.x
openssl enc -base64 -A -in /path/to/privatefile
// OpenSSL 3+
openssl base64 -A -in /path/to/privatefile
รองรับคีย์ส่วนตัวสามประเภท RSA/ECDSA/ED25519 ส่วน DSA (
ssh-dss) ไม่รองรับ: ใช้ไม่ได้ทั้งคีย์โฮสต์แบบ DSA และคีย์ส่วนตัวแบบ DSAวิธีการ KEX และรหัสด้านล่างคือค่าเริ่มต้นที่คอมไพล์มากับ libssh2 ซึ่ง Chute Mac, iOS และ tvOS ใช้ ส่วน Chute Android ใช้ชุดค่าเริ่มต้นของไลบรารี SSH ของตัวเองคือ sshj แทน ค่าเหล่านี้ไม่ใช่รายการที่ Chute บังคับใช้ — Chute ไม่ได้จำกัดให้แคบลง:
| วิธีการ KEX |
|---|
| diffie-hellman-group1-sha1 |
| diffie-hellman-group14-sha1 |
| ecdh-sha2-nistp256 |
| ecdh-sha2-nistp384 |
| ecdh-sha2-nistp521 |
| curve25519-sha256@libssh.org |
| curve25519-sha256 |
| diffie-hellman-group16-sha512 |
| diffie-hellman-group18-sha512 |
| diffie-hellman-group14-sha256 |
| diffie-hellman-group-exchange-sha256 |
| diffie-hellman-group-exchange-sha1 |
| รหัส |
|---|
| chacha20-poly1305@openssh.com |
| aes256-gcm@openssh.com |
| aes128-gcm@openssh.com |
| aes256-ctr |
| aes192-ctr |
| aes128-ctr |
| aes256-cbc |
| rijndael-cbc@lysator.liu.se |
| aes192-cbc |
| aes128-cbc |
| blowfish-cbc |
| arcfour128 |
| arcfour |
| cast128-cbc |
| 3des-cbc |
- คุณสามารถระบุพารามิเตอร์หมดเวลาเมื่อไม่มีการใช้งาน (idle timeout) ได้ ค่าเริ่มต้นคือ 180 วินาที การเชื่อมต่อที่สร้างผ่านนโยบายนี้จะใช้เซสชัน SSH ร่วมกันหนึ่งเซสชัน ซึ่งจะถูกปิดเมื่อไม่มีการเชื่อมต่อใดผ่านเซสชันนั้นครบตามจำนวนวินาทีดังกล่าว ขณะที่ยังมีการเชื่อมต่อใดเปิดอยู่ เซสชันจะยังคงอยู่ ไม่ว่าการเชื่อมต่อนั้นจะไม่มีข้อมูลรับส่งนานเพียงใด และการเชื่อมต่อที่สิ้นสุดลงจะไม่ส่งผลต่อการเชื่อมต่ออื่นบนเซสชันเดียวกัน
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180
ลายนิ้วมือเซิร์ฟเวอร์
เพื่อรับมือกับการโจมตี MitM คุณสามารถระบุลายนิ้วมือคีย์สาธารณะของเซิร์ฟเวอร์ด้วย server-fingerprint ซึ่งรับประกันว่าเฉพาะเซิร์ฟเวอร์ที่ถูกต้องเท่านั้นที่เชื่อมต่อ แต่ละรายการเป็นได้ทั้งคีย์สาธารณะของเซิร์ฟเวอร์ในรูปแบบที่ ~/.ssh/known_hosts เขียนไว้ — ประเภทคีย์ตามด้วยคีย์แบบ base64 เช่น ssh-ed25519 AAAA… — หรือลายนิ้วมือ SHA-256 ของคีย์ในรูปแบบที่ ssh-keygen -l พิมพ์ออกมา คือ SHA256:… เครื่องหมายคำพูดคู่ที่ครอบค่าจะใส่หรือไม่ก็ได้ เมื่อเขียน server-fingerprint ไว้แต่อ่านรายการใดไม่ได้เลย ทุกการเชื่อมต่อจะถูกปฏิเสธ แทนที่จะเชื่อถือเซิร์ฟเวอร์ใดก็ได้ การเชื่อมต่อที่ถูกปฏิเสธจะถูกบันทึกพร้อมประเภทและลายนิ้วมือ SHA256: ของคีย์ที่เซิร์ฟเวอร์เสนอมา
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180, server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep"
เนื่องจากอาจมีคีย์สาธารณะหลายตัวสำหรับเซิร์ฟเวอร์ พารามิเตอร์ server-fingerprint รองรับการกำหนดค่าลายนิ้วมือหลายตัว
server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep,ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrklKEp4vuMqqNiS2lvDL7g3rQ2dAwvik+KIC4iVJNoaHhkLRAEv1y/dQYixf71ORZUI+w3AFKp1RzfiuwciTsMnp7Hq9uvcHqDRDaCrYe1EDx3Dr0XlH1wsdUcr+6DOAUzRSXK9LSEPVK1xHb6WJBaTkNOHruPCmrINA/DEIiflMN2q77AWlsMt+unhmY2YWgJprY+vpDOcXk8+CnL4K+QWNlHB8mTfB58p1oadz1xWG9so//rUMp7JHtUt6QpVJvwf/Qh7IcFNDhSHwSTJu2Px2P9biuUOPkmPtZmTIdnDx25EUWtmE/+VE3lZAYuur7KuGsG0o+X8dYnEMAN3ar"
คุณสามารถรับลายนิ้วมือเซิร์ฟเวอร์จากไฟล์ ~/.ssh/known_hosts หรือคุณอาจใช้คำสั่ง ssh-keyscan example.com ในสภาพแวดล้อมเครือข่ายที่เชื่อถือได้เพื่อดึงข้อมูล โปรดลบชื่อโฮสต์ที่อยู่ด้านหน้าบรรทัดก่อนคัดลอกไปยัง Chute: รายการที่ยังขึ้นต้นด้วยชื่อโฮสต์จะอ่านไม่ได้
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก