SSH:- no matching key exchange method found

เดี๋ยวนี้ใน Windows 10 ก็มี ssh ให้ใช้งาน แต่พอใช้กับเซิร์ฟเวอร์รุ่นเก่าๆ ก็เข้าไม่ได้ซะงั้น ไปลอง ssh ฝั่ง Linux (WSL2) ก็ให้ผลเหมือนกันคือ!!! ถ้าเป็นเมื่อก่อน วิ่งไปหา putty อย่างไว…. แต่ Windows อุตส่าห์ทำมาให้ใช้แล้วทั้งทีจะไม่ใช้ได้ยังไง สิ่งที่ต้องตรวจสอบก่อนคือ man ssh_config สำหรับ Linux ฝั่ง client ว่ารองรับ ciphers และ kexalgorithms แบบไหนรองรับหรือไม่ ส่วนฝั่ง Windows 10 จะอิงตาม OpenBSD manual ซึ่งเหมือนกับ Linux แหละ สร้างแฟ้ม .ssh/config โดย Linux ก็จะให้สร้างที่ /home/username/.ssh/ Windows ก็อยู่ที่ C:\Users\username\.ssh สำหรับ error ว่า no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 ให้เพิ่มข้อความต่อไปนี้ลงในแฟ้ม .ssh/config โดย somhost.example.org เป็นชื่อและโดเมนเนมของ server เป้าหมาย สำหรับ error ว่า no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se ให้เลือกมา 1 cipher ที่ปรากฎใน error มาใส่ในแฟ้ม .ssh/config บาง server ต้องรวมทั้งสองอย่างเช่น ถ้าไม่อยากสร้างแฟ้ม .ssh/config สามารถสั่งผ่าน command line ได้เลยเช่น หรือ ถ้ามี error 2 อย่าง เมื่อสร้างแฟ้ม .ssh/config แล้วลอง ssh เข้าไปใหม่ อ้างอิง https://www.openssh.com/legacy.html https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration เย่ไม่ต้องลง putty ละ อย่างไรก็ดี ควรรีบหาทางขยับขยายย้ายเซิร์ฟที่ยังใช้วิธีการเข้ารหัสแบบเก่า ให้เป็นรุ่นใหม่ๆ จะดีและยั่งยืนกว่า จบขอให้สนุก

Read More »

Windows Subsystem for Linux Installation Guide for Windows 10

เพื่อเป็นการไม่เสียเวลา เริ่ม เปิด Powershell ด้วยสิทธิ์ของ Administrator แล้วพิมพ์คำสั่ง ต่อไปนี้เพื่อเปิดใช้งาน “Windows Subsystem for Linux” หรือ wsl โดยจะเป็นรุ่น 1 หรือ wsl1 ปรับรุ่นให้เป็นรุ่น 2 โดย Windows 10 ที่ใช้งาน ต้องเป็น Windows 10 version 2004, Build 19041 1903, Build 18362 ขึ้นไปเท่านั้น ตรวจสอบรุ่นของ Windows ด้วยคำสั่ง winver (start->run) เปิดใช้งาน Virtual Machine Platform พิมพ์คำสั่งต่อไปนี้ ใน powershell ของ administrator restart เครื่องเพื่อให้การปรับรุ่น wsl1 เป็น wsl2 สมบูรณ์ ตั้งค่าให้ wsl2 เป็นค่าเริ่มต้นด้วยคำสั่ง ซึ่งจะเจอข้อความตามภาพ ให้ไปดาวน์โหลด kernel ได้จาก https://aka.ms/wsl2kernel โหลดมาแล้วติดตั้งให้เรียบร้อย (Next technology) สั่งคำสั่งเดิมอีกครั้งเพื่อตั้งค่าให้ wsl เป็นรุ่น 2 เป็นค่าเริ่มต้น สามารถดูรายละเอียดความแตกต่างของ wsl2 ได้ที่ https://aka.ms/wsl2 ติดตั้ง Linux ที่ต้องการจาก Microsoft Store หรือคลิกลิงค์ด้านล่างเพื่อเข้า Microsoft Store Ubuntu 16.04 LTS Ubuntu 18.04 LTS Ubuntu 20.04 LTS openSUSE Leap 15.1 SUSE Linux Enterprise Server 12 SP5 SUSE Linux Enterprise Server 15 SP1 Kali Linux Debian GNU/Linux Fedora Remix for WSL Pengwin Pengwin Enterprise Alpine WSL ติดตั้งเสร็จแล้วคลิก Launch ใน Microsoft Store จะเป็นการเปิดหน้าของลินุกส์ขึ้นมาและให้ตั้งค่าต่างๆ username และ password ตั้งค่าเสร็จได้ดังภาพ ตั้งค่าลินุกส์ให้เป็น wsl2 ตรวจสอบว่าเป็นรุ่นไหนอยู่ด้วยคำสั่ง ซึ่งถ้าหากยังเป็นรุ่น 1 สามารถเปลี่ยนได้ด้วยคำสั่ง โดยแทนที่ <distribution name> ด้วยชื่อเต็มที่ได้จากคำสั่ง wsl –list –verbose เช่น Ubuntu-20.04 และ <versionNumber> ด้วย 1 หรือ 2 ตามต้องการ จบขอให้สนุก ต้นฉบับ https://docs.microsoft.com/en-us/windows/wsl/install-win10

Read More »

Windows Terminal (1)

เบื่อ cmd ใช้ Windows Terminal แทนกันดีกว่า… ให้ดูรูปก่อน สวยงามตระการตา!!! บางคนใช้แล้วอาจจะมีความสุข เริ่มได้ เหมาะสำหรับ Windows 10 version 1909 ขึ้นไป ติดตั้ง Git ติดตั้ง Windows Terminal จาก Microsoft Store หรือ จาก Github ถ้าหากติดตั้งจาก Github ต้องติดตั้ง Desktop Bridge VC++ v14 Redistributable Package ด้วย และโปรแกรมจะไม่อัพเดตตัวเองต้องโหลดมาปรับรุ่นเองทุกครั้ง ระวัง!!! ติดตั้งแล้วเปิดใช้งานจะได้หน้าตาประมาณนี้ เราจะเปลี่ยนหน้าตากันเริ่มจากพิมพ์คำสั่งต่อไปนี้ (ต้องเชื่อมต่ออินเตอร์เน็ต) Posh-Git เอาไว้แสดงข้อมูลของ Git ใน prompt Oh-My-Posh เป็น theme สวยๆ ของ powershell นั่นเอง ต่อด้วยคำสั่ง ตรวจสอบโฟลเดอร์สำหรับเก็บ Profile ของ PowerShell ด้วยคำสั่ง สร้างแฟ้ม $PROFILE (ไฟล์ขื่อ Microsoft.PowerShell_profile.ps1 ในโฟลเดอร์ C:\Users\haruo\OneDrive\Documents\WindowsPowerShell\) โดยมีข้อความต่อไปนี้ ปิดแล้วเปิดใหม่ก็จะได้ดังภาพ จะเห็นว่ามีเครื่องหมาย  อยู่ที่ prompt ด้วยจำเป็นต้องลงฟอนท์เพิ่มเติมนั่นคือฟอนท์ Powerline ซึ่งสามารถติดตั้งโดยโหลด Cascadia Code มาติดตั้ง เมื่อติดตั้งแล้วให้เปลี่ยนฟอนท์ของ Windows Terminal โดยคลิก แล้วเลือก Settings จะเป็นการเปิดการตั้งค่า default ที่เรียกใช้งานอยู่ ด้วย default text editor เลื่อน cursor ลงมาประมาณบรรทัดที่ 38 แล้วกด enter เพิ่มข้อความว่า save แล้วไปดูผลได้เลย สวยแล้ว! จบขอให้สนุก Oh-My-Posh ยังมี Theme อื่นๆ ลองเข้าไปเลือกดูได้ เปลี่ยน theme ได้โดยแก้แฟ้ม $PROFILE เปลี่ยนจาก Paradox เป็นอย่างอื่นเช่น Darkblood เป็นต้น save ปิดแล้วเปิด Windows Terminal ใหม่

Read More »

วิธีการติดตั้ง OpenSSH Server บน Windows

อยาก ssh เข้า Windows Server เพื่อเข้าไปรัน PowerShell หรือรัน script cmd ต้องทำอย่างไร(โดยปกติ Windows ปัจจุบันมี OpenSSH Client ติดตั้งมาโดย Default ถ้าใครต้องการแค่จะใช้ ssh/scp command ข้ามบนความนี้ได้เลยครับ) Reference : – https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse Installation of OpenSSH For Windows Server 2019 and Windows 10 Environment : – Windows Server 2019 หรือ Windows 10 1809 ขึ้นไป วิธีการติดตั้ง OpenSSH Server ผ่าน GUIเปิด Settings > Apps > Apps and Features > Manage Optional Features (Windows 10 ใช้คำว่า Optional Features) วิธีการติดตั้ง OpenSSH Server ผ่าน PowerShell (Run as Administrator) – ตรวจสอบ Version ของ OpenSSH ที่จะลงก่อน – ทำการติดตั้งตาม Version ล่าสุด วิธีการสร้าง Service ให้ Start OpenSSH Server โดยอัตโนมัติเมื่อเปิดเครื่องผ่าน PowerShell Run as Administrator และทำการเปิด Firewall ให้เข้าถึงได้ ทดสอบเข้าใช้งาน (สำหรับเครื่องที่ join office365 แนะนำให้เข้าผ่าน local account ครับ) การใช้งานต้องใช้คำสั่งของ powershell นะครับ ไม่ใช่ shell script ของ linux ดังนั้นการกดออกต้องใช้คำสั่ง exit ในแง่เดียวกันสามารถทำ ssh tunnel ไปมาระหว่าง Windows และ Linux ได้นะครับ แต่คงจะไม่ได้เขียน Blog ในส่วนนี้ครับ แต่จะไม่มี command ssh-copy-id ใน windows ให้ใช้คงต้อง ssh-keygen แล้ว copy key ไปสร้างในเครื่อง linux เองครับ

Read More »

การเชื่อมต่อ Dell EMC SC Series (SAN Storage) กับ Windows 2019 ด้วย iSCSI Microsoft MPIO

ทำไมต้องเชื่อมต่อ SAN Storage ด้วย MPIO มีข้อดีอย่างไร ต้องตั้งค่าอย่างไรให้ถูกต้อง Reference : – https://www.youtube.com/watch?v=hsXtfab-xNM Dell EMC SC Series Storage : Microsoft Multipath I/0 (MPIO) Best Practice– https://downloads.dell.com/manuals/all-products/esuprt_software/esuprt_it_ops_datcentr_mgmt/general-solution-resources_white-papers3_en-us.pdf Dell EMC SC Series Storage and Microsoft Multipath I/O– https://www.youtube.com/watch?v=Z2ICF8yzFkU How-to: Configure iSCSI MPIO on Windows Server 2012 R2– https://www.starwindsoftware.com/blog/lacp-vs-mpio-on-windows-platform-which-one-is-better-in-terms-of-redundancy-and-speed-in-this-case-2 ISCSI: LACP vs. MPIO Environment : – Dell EMC SC5020 – Windows Server 2019 Standard Edition MPIO ย่อมาจาก Multipath Input/Output เป็น Feature ของการเชื่อมต่อไม่ว่าจะเป็น iSCSI หรือ Fiber Channel ที่ต้องการให้ Server ไม่สับสนเมื่อมีการคุยกับ Storage หลายเส้นทาง (Storage ต่อเน็ตหลายเส้น และ Server ก็ต่อเน็ตหลายเส้น รวมถึงมีหลาย IP ไม่ได้ทำแบบหลายเส้นรวมเป็น Link เดียว) ซึ่งถ้าไม่ใช้ความสามารถนี้ จะทำให้ Server เห็น Volume หรือ LUN บน Storage เป็นหลาย ๆ อันทั้งที่เป็นอันเดียวกัน นอกจากนี้ MPIO ยังสามารถทำ Load Balance โดยการกระจายการเชื่อมต่อโดยมีหลายวิธีให้เลือกใช้งานเช่น Round Robin (ไล่ลำดับไปเรื่อย ๆ แล้วกลับมาเริ่มที่ connection ที่ 1 เช่น 12341234) ยกตัวอย่างในกรณีไม่ได้ทำ MPIO ได้ดังรูป หลังจากทำ MPIO จะได้ดังรูป MPIO ไม่ได้ติดตั้งโดย Default บน Windows Server โดยสามารถติดตั้งได้จาก Server Manager GUI โดยการ Add Feature ดังรูป หรือติดตั้งผ่าน PowerShell ดังนี้ หลังจากติดตั้งเสร็จให้ Restart Server สำหรับ Dell EMC SC Series ต้องทำการแก้ไข Registry ของ Windows ด้วย PowerShell Script ดังนี้ หลังจากรัน Script PowerShell ให้ Restart Server อีกรอบ เพื่อให้เข้าใจง่ายขึ้นสามารถยกตัวอย่างการใช้งาน Multipath ได้ดัง Diagramในรูป ตัวอย่างการตั้งค่าใน SAN Storage (Dell SC5020) โดยจะมีทั้งหมด 2 Controller ซึ่งแต่ละ Controller จะมี 4 Port ซึ่งเมื่อตรวจสอบในฝั่ง Windows จะเห็นว่ามี Connection ที่เกิดจากการ Discovery โดยใส่ IP ของ ISCSI ปลายทาง จำนวน 8 Connection ซึ่งต้องเข้าไปตั้งค่าใน Target ให้มีการใช้งานแบบ multi-path ด้วยทุก Connection ซึ่งเราสามารถเลือกใน Advance ได้อีกว่าจะให้เชื่อมต่อไปยัง

Read More »