จะใช้ Native SSH Client ใน Windows 10 ได้อย่างไร?
ไคลเอนต์ SSH ในตัว ปรากฏใน Windows 10 และ Windows Server 2019
Ssh.exeสามารถใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Linux/UNIX, โฮสต์ VMWare ESXi และอุปกรณ์อื่นๆ ได้อย่างปลอดภัย แทน Putty, MTPuTTY และไคลเอ็นต์ SSH ของบริษัทอื่น ไคลเอ็นต์ Windows SSH แบบเนทีฟใช้พอร์ต OpenSSH และติดตั้งไว้ล่วงหน้าใน Windows โดยเริ่มจาก Windows 10 รุ่น 1809
วิธีเปิดใช้งาน (ติดตั้ง) ไคลเอนต์ OpenSSH บน Windows 10
ไคลเอนต์ OpenSSH รวมอยู่ใน ฟีเจอร์ตามความต้องการของ Windows 10 (เช่น RSAT) ไคลเอนต์ SSH ได้รับการติดตั้งโดยค่าเริ่มต้นบน Windows Server 2019, Windows 10 1809 และรุ่นที่ใหม่กว่า
ตรวจสอบว่ามีการติดตั้งไคลเอนต์ SSH:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'
ในตัวอย่างของเรา มีการติดตั้งไคลเอนต์ OpenSSH (สถานะ: ติดตั้งแล้ว)
หากไม่ใช่ (สถานะ: ไม่มี) คุณสามารถติดตั้งโดยใช้:
คำสั่ง PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Client*ด้วย DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0ผ่านการตั้งค่า -> แอพ -> คุณสมบัติเสริม -> เพิ่มคุณสมบัติ ค้นหา ไคลเอ็นต์ OpenSSH ในรายการ แล้วคลิก ติดตั้ง
ไฟล์ไบนารี OpenSSH อยู่ใน
c:\Windows\System32\OpenSSH\ssh.exe- ไคลเอนต์ SSH ที่เรียกใช้งานได้;
scp.exe- เครื่องมือสำหรับการคัดลอกไฟล์ในเซสชัน SSH
ssh-keygen.exe- เครื่องมือในการสร้างคีย์การพิสูจน์ตัวตน RSA SSH;
ssh-agent.exe- ใช้ในการจัดการคีย์ RSA;
ssh-add.exe- เพิ่มคีย์ให้กับฐานข้อมูลเอเจนต์ SSH
คุณสามารถติดตั้ง OpenSSH บน Windows รุ่นก่อนหน้าได้เช่นกัน เพียงดาวน์โหลดและติดตั้ง Win32-OpenSSH จาก GitHub (ดูตัวอย่างได้ในบทความ: Configuring SSH FTP on Windows)
การใช้ Native SSH Client บน Windows 10
ในการเริ่มต้นไคลเอ็นต์ SSH ให้เรียกใช้พรอมต์ PowerShell หรือ cmd.exe คุณสามารถแสดงรายการตัวเลือกและไวยากรณ์สำหรับ ssh.exe ได้:
sshusage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]ในการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลโดยใช้ SSH ให้ใช้คำสั่งต่อไปนี้:
ssh username@hostหากเซิร์ฟเวอร์ SSH ของคุณทำงานบนพอร์ตที่แตกต่างจาก TCP/22 มาตรฐาน ให้ระบุหมายเลขพอร์ต:
ssh username@host -p portตัวอย่างเช่น หากต้องการเชื่อมต่อกับโฮสต์ Linux ที่มีที่อยู่ IP 192.168.1.102 เป็น root ให้รันคำสั่งนี้:
ssh root@192.168.1.102ในการเชื่อมต่อครั้งแรก คุณจะเห็นคำขอให้เพิ่มรหัสโฮสต์ไปยังรายการที่เชื่อถือได้ พิมพ์
yes
แล้วกด ENTER จากนั้นลายนิ้วมือของคีย์โฮสต์จะถูกเพิ่มลงในไฟล์ C:\Users\ชื่อผู้ใช้\.ssh\known_hosts
คุณจะได้รับแจ้งให้ใส่รหัสผ่าน ระบุรหัสผ่านรูทของคุณและคอนโซลของเซิร์ฟเวอร์ Linux ระยะไกลควรเปิดขึ้น (ในตัวอย่างของฉัน ติดตั้ง CentOS บนเซิร์ฟเวอร์ระยะไกล)
เมื่อใช้ SSH คุณสามารถเชื่อมต่อกับ *Nix OS และ Windows ได้ ในบทความก่อนหน้านี้ เราได้แสดงวิธีกำหนดค่าเซิร์ฟเวอร์ OpenSSH ใน Windows 10 และเชื่อมต่อจากโฮสต์ Windows โดยใช้ไคลเอนต์ SSH
หากคุณใช้การตรวจสอบสิทธิ์ SSH ด้วยคีย์ RSA (ดูตัวอย่างเกี่ยวกับวิธีกำหนดค่าการตรวจสอบสิทธิ์ SSH โดยใช้คีย์ใน Windows) คุณสามารถระบุพาธไปยังไฟล์คีย์ส่วนตัวในไคลเอ็นต์ SSH ของคุณได้ดังนี้:
ssh root@192.168.1.102 -i "C:\Users\username\.ssh\id_rsa"คุณยังสามารถเพิ่มรหัสส่วนตัวให้กับ SSH-Agent ขั้นแรก ให้เปิดใช้งานบริการ ssh-agent และกำหนดค่าการเริ่มต้นอัตโนมัติสำหรับบริการดังกล่าว
set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agentเพิ่มรหัสส่วนตัวของคุณไปยังฐานข้อมูล ssh-agent:
ssh-add "C:\Users\username\.ssh\id_rsa"จากนั้นคุณจะสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน SSH โดยไม่ต้องระบุเส้นทางไปยังคีย์ RSA มันจะถูกใช้โดยอัตโนมัติ ตอนนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณได้อย่างปลอดภัยโดยไม่ต้องใช้รหัสผ่าน (หากคุณไม่ได้ป้องกันคีย์ RSA ด้วยรหัสผ่านอื่น):
ssh root@192.168.1.102นี่คืออาร์กิวเมนต์ SSH ที่มีประโยชน์เพิ่มเติม:
-C- ใช้เพื่อบีบอัดการรับส่งข้อมูลระหว่างไคลเอนต์และเซิร์ฟเวอร์ (มีประโยชน์ในกรณีที่การเชื่อมต่อช้าหรือไม่เสถียร)
-v- แสดงข้อมูลโดยละเอียดเกี่ยวกับการดำเนินการไคลเอนต์ SSH ทั้งหมด
-R/-L- สามารถใช้เพื่อส่งต่อพอร์ตโดยใช้อุโมงค์ SSH
การใช้ SCP.exe เพื่อถ่ายโอนไฟล์ไปยัง/จากโฮสต์ Windows โดยใช้ SSH
ใช้เครื่องมือ scp.exe (เป็นส่วนหนึ่งของแพ็คเกจไคลเอนต์ Windows 10 SSH) คุณสามารถคัดลอกไฟล์จากคอมพิวเตอร์ของคุณไปยังเซิร์ฟเวอร์ SSH:
scp.exe "E:\ISO\CentOS-8.1.x86_64.iso" root@192.168.1.202:/homeคุณสามารถคัดลอกเนื้อหาไดเร็กทอรีทั้งหมดแบบวนซ้ำ:
scp -r E:\ISO\ root@192.168.1.202:/homeและในทางกลับกัน คุณสามารถถ่ายโอนไฟล์จากเซิร์ฟเวอร์ระยะไกลไปยังคอมพิวเตอร์ของคุณได้:
scp.exe root@192.168.1.202:/home/CentOS-8.1.x86_64.iso c:\isoหากคุณกำหนดค่าการรับรองความถูกต้องโดยใช้คีย์ RSA คุณจะไม่ถูกขอให้ป้อนรหัสผ่านเพื่อถ่ายโอนไฟล์ สิ่งนี้มีประโยชน์หากคุณต้องการกำหนดค่าการคัดลอกไฟล์ตามกำหนดเวลาโดยอัตโนมัติ
ดังนั้น คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ SSH ได้โดยตรงจาก Windows 10 ของคุณ คัดลอกไฟล์โดยใช้ scp โดยไม่ต้องใช้แอพหรือเครื่องมือของบุคคลที่สาม





