à¹à¸§à¸à¹à¸²à¸à¸±à¸ à¸à¸à¸±à¸à¸à¸´à¹à¸¨à¸©
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ตำแหน่งไฟล์ SSH Config
- โครงสร้างไฟล์ SSH Config และรูปแบบ
- ตัวอย่างไฟล์ SSH Config
- ตัวอย่างไฟล์การกำหนดค่า SSH ที่แชร์
- แทนที่ตัวเลือกไฟล์กำหนดค่า SSH
- ข้อสรุป
ทางเลือกหนึ่งคือการสร้าง bash alias สำหรับการเชื่อมต่อเซิร์ฟเวอร์ระยะไกลแต่ละครั้ง อย่างไรก็ตามมีวิธีแก้ไขปัญหาอื่นที่ดีกว่าและเรียบง่ายกว่ามาก OpenSSH อนุญาตให้คุณตั้งค่าไฟล์กำหนดค่าต่อผู้ใช้ซึ่งคุณสามารถเก็บตัวเลือก SSH ที่แตกต่างกันสำหรับแต่ละเครื่องรีโมตที่คุณเชื่อมต่อ
คำแนะนำนี้ครอบคลุมพื้นฐานของไฟล์กำหนดค่าไคลเอ็นต์ SSH และอธิบายตัวเลือกการกำหนดค่าทั่วไปบางอย่าง
ข้อกำหนดเบื้องต้น
เรากำลังสมมติว่าคุณใช้ Linux หรือระบบ macOS ที่ติดตั้งไคลเอนต์ OpenSSH
ตำแหน่งไฟล์ SSH Config
ไฟล์คอนฟิกูเรชันฝั่งไคลเอ็นต์ OpenSSH ชื่อ
config
และจะถูกเก็บไว้ในไดเร็กทอรี
.ssh
ภายใต้โฮมไดเร็กทอรีของผู้ใช้
ไดเร็กทอรี
~/.ssh
ถูกสร้างขึ้นโดยอัตโนมัติเมื่อผู้ใช้รันคำสั่ง
ssh
เป็นครั้งแรก หากไม่มีไดเรกทอรีในระบบของคุณให้สร้างโดยใช้คำสั่งด้านล่าง:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
โดยค่าเริ่มต้นไฟล์การกำหนดค่า SSH อาจไม่มีอยู่ดังนั้นคุณอาจต้องสร้างมันขึ้นมาโดยใช้คำสั่ง touch:
touch ~/.ssh/config
ไฟล์นี้จะต้องสามารถอ่านและเขียนได้โดยผู้ใช้เท่านั้นและไม่สามารถเข้าถึงได้โดยผู้อื่น:
โครงสร้างไฟล์ SSH Config และรูปแบบ
ไฟล์กำหนดค่า SSH ใช้โครงสร้างต่อไปนี้:
Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value
เนื้อหาของไฟล์กำหนดค่าไคลเอ็นต์ SSH ถูกจัดระเบียบเป็น stanzas (ส่วน) แต่ละ stanza เริ่มต้นด้วยคำสั่ง
Host
และมีตัวเลือก SSH เฉพาะที่ใช้เมื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ SSH ระยะไกล
ไม่จำเป็นต้องมีการเยื้อง แต่แนะนำให้ทำเพราะทำให้อ่านไฟล์ได้ง่ายขึ้น
คำสั่ง
Host
สามารถมีหนึ่งรูปแบบหรือรายการของรูปแบบที่คั่นด้วยช่องว่าง แต่ละรูปแบบสามารถมีอักขระที่ไม่ใช่ช่องว่างหรือมากกว่าหรือหนึ่งในตัวระบุรูปแบบต่อไปนี้:
-
*
- จับคู่อักขระศูนย์หรือมากกว่า ตัวอย่างเช่นHost *
ตรงกับโฮสต์ทั้งหมดในขณะที่192.168.0.*
ตรงกับโฮสต์ในเครือข่ายย่อย192.168.0.0/24
?
- ตรงกับตัวละครตัวหนึ่ง รูปแบบHost 10.10.0.?
ตรงกับโฮสต์ทั้งหมดใน10.10.0.
พิสัย.!
- เมื่อใช้ในช่วงเริ่มต้นของรูปแบบ ตัวอย่างเช่นHost 10.10.0.* !10.10.0.5
ตรงกับโฮสต์ใด ๆ ในซับเน็ต10.10.0.5
ยกเว้น10.10.0.5
ไคลเอ็นต์ SSH อ่านไฟล์คอนฟิกูเรชัน stanza โดย stanza และถ้ามากกว่าหนึ่งรูปแบบตรงกันตัวเลือกจาก stanza ที่ตรงกันครั้งแรกจะมีความสำคัญกว่า ดังนั้นควรมีการประกาศเฉพาะโฮสต์เพิ่มเติมที่จุดเริ่มต้นของไฟล์และการแทนที่ทั่วไปเพิ่มเติมในตอนท้ายของไฟล์
คุณสามารถค้นหารายการทั้งหมดของตัวเลือก ssh ที่มีอยู่โดยพิมพ์
man ssh_config
ในเทอร์มินัลของคุณหรือไปที่หน้า man ssh_config
ไฟล์กำหนดค่า SSH ยังอ่านได้จากโปรแกรมอื่นเช่น
scp
,
sftp
และ
rsync
ตัวอย่างไฟล์ SSH Config
ตอนนี้เราได้พูดถึงพื้นฐานของไฟล์กำหนดค่า SSH แล้วลองดูตัวอย่างต่อไปนี้
โดยทั่วไปเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน SSH คุณจะต้องระบุชื่อผู้ใช้ระยะไกลชื่อโฮสต์และพอร์ต ตัวอย่างเช่นในการเข้าสู่ระบบในฐานะผู้ใช้ชื่อ
john
ไปยังโฮสต์ชื่อ
dev.example.com
บนพอร์ต
2322
จากบรรทัดคำสั่งคุณจะต้องพิมพ์:
ssh [email protected] -p 2322
ในการเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ตัวเลือกเดียวกับที่ให้ไว้ในคำสั่งด้านบนเพียงพิมพ์
ssh dev
ใส่บรรทัดต่อไปนี้ลงในไฟล์
"~/.ssh/config
:
Host dev HostName dev.example.com User john Port 2322
ตอนนี้เมื่อคุณพิมพ์
ssh dev
ไคลเอ็นต์ ssh จะอ่านไฟล์การกำหนดค่าและใช้รายละเอียดการเชื่อมต่อที่ระบุไว้สำหรับโฮสต์
dev
:
ตัวอย่างไฟล์การกำหนดค่า SSH ที่แชร์
ตัวอย่างนี้ให้ข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับรูปแบบโฮสต์และลำดับความสำคัญของตัวเลือก
ลองดูไฟล์ตัวอย่างต่อไปนี้:
Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes
-
เมื่อคุณพิมพ์
ssh targaryen
ไคลเอ็นต์ ssh จะอ่านไฟล์และใช้ตัวเลือกจากการจับคู่ครั้งแรกซึ่งเป็นHost targaryen
จากนั้นจะตรวจสอบ stanzas ถัดไปทีละตัวเพื่อหารูปแบบการจับคู่ อันถัดไปคือHost * !martell
(หมายถึงโฮสต์ทั้งหมดยกเว้นmartell
) และจะใช้ตัวเลือกการเชื่อมต่อจากmartell
นี้ คำจำกัดความHost *
สุดท้ายยังจับคู่ แต่ไคลเอ็นต์ ssh จะใช้เฉพาะตัวเลือกการCompression
เนื่องจากตัวเลือกUser
ถูกกำหนดไว้แล้วในHost targaryen
เป้าหมายรายการตัวเลือกทั้งหมดที่ใช้เมื่อคุณพิมพ์
ssh targaryen
มีดังนี้:HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes
เมื่อรัน
ssh tyrell
รูปแบบโฮสต์ที่ตรงกันคือ:Host tyrell
,Host *ell
,Host * !martell
และHost *
ตัวเลือกที่ใช้ในกรณีนี้คือ:HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes
HostName 192.168.10.50 User oberyn Compression yes
สำหรับการเชื่อมต่ออื่น ๆ ไคลเอ็นต์ ssh จะใช้ตัวเลือกที่ระบุในส่วน
Host * !martell
และHost *
แทนที่ตัวเลือกไฟล์กำหนดค่า SSH
ไคลเอ็นต์ ssh อ่านการกำหนดค่าตามลำดับความสำคัญดังต่อไปนี้:
- ตัวเลือกที่ระบุจากบรรทัดคำสั่งตัวเลือกที่กำหนดใน
~/.ssh/config
.Options ที่กำหนดไว้ใน/etc/ssh/ssh_config
Host dev HostName dev.example.com User john Port 2322
และคุณต้องการใช้ตัวเลือกอื่น ๆ ทั้งหมด แต่เพื่อเชื่อมต่อในฐานะผู้ใช้
root
แทนที่จะเป็น
john
เพียงระบุผู้ใช้ในบรรทัดคำสั่ง:
ssh -o "User=root" dev
อ็อพชัน
-F
(
configfile
) อนุญาตให้คุณระบุไฟล์คอนฟิกูเรชันต่อผู้ใช้ทางเลือก
ในการบอกไคลเอ็นต์
ssh
ให้เพิกเฉยตัวเลือกทั้งหมดที่ระบุในไฟล์กำหนดค่า ssh ให้ใช้:
ssh -F /dev/null [email protected]
ข้อสรุป
เราได้แสดงวิธีการกำหนดค่าไฟล์การตั้งค่าผู้ใช้ของคุณ คุณอาจต้องการตั้งค่าการรับรองความถูกต้องโดยใช้คีย์ SSH และเชื่อมต่อกับเซิร์ฟเวอร์ Linux ของคุณโดยไม่ต้องป้อนรหัสผ่าน
โดยค่าเริ่มต้น SSH จะฟังพอร์ต 22 การเปลี่ยนพอร์ต SSH เริ่มต้นจะเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณโดยลดความเสี่ยงของการโจมตีโดยอัตโนมัติ
ssh terminalหน้า About: flag ใน Microsoft Edge browser, chrome: // ธงเพจในเบราเซอร์ Chrome และ about: config page ใน Mozilla Firefox มีการตั้งค่าเพิ่มเติม
การใช้ไฟล์ OneDrive On-Demand ใน Windows 10
เรียนรู้วิธีเปิด, ตั้งค่า, ลงชื่อเข้าใช้และใช้ไฟล์ OneDrive On-Demand
ภัยคุกคามที่เกี่ยวข้องกับไฟล์ PAC ของ Proxy Auto Config และวิธีหลีกเลี่ยงการเปลี่ยนเส้นทางด้วยตนเองหรือผ่าน Phrozensoft Auto Config Risk Protector
URL ใด ๆ ที่เป็นที่อยู่ IP ที่คุณสามารถจดจำได้ง่าย กล่าวคือทุก URL ที่ทำงานบนอินเทอร์เน็ตเป็นที่อยู่ IP แนวคิดของที่อยู่ IP เกินกว่า URL และขยายไปยังอุปกรณ์ต่อพ่วงและคอมพิวเตอร์ทั้งหมดในเครือข่ายของคุณ บทความนี้เกี่ยวกับไฟล์