การเรียนรู้การเชื่อมต่อที่ปลอดภัย: วิธีใช้ SSH กับ PowerShell เพื่อการจัดการระยะไกลที่มีประสิทธิภาพ
# เพิ่มพลังให้กับเวิร์กโฟลว์ของคุณ: 5 วิธีขั้นสูงในการใช้ SSH ด้วย PowerShell
ในขอบเขตของวิศวกรรมซอฟต์แวร์ PowerShell ถือเป็นเครื่องมืออเนกประสงค์และทรงพลังสำหรับการจัดการระบบ โดยมีกรณีการใช้งานมากมายที่เกี่ยวข้องกับการเขียนสคริปต์และระบบอัตโนมัติ การใช้ Secure Shell (SSH) กับ PowerShell จะเปิดระดับใหม่ของการควบคุมและการจัดการระบบต่างๆ ทำให้งานของคุณมีประสิทธิภาพและคล่องตัวมากขึ้น แต่คุณกำลังใช้ศักยภาพสูงสุดของการผสมผสานอันทรงพลังนี้หรือไม่?
ในบทความนี้ เราจะเจาะลึกถึงวิธีใช้ SSH กับ PowerShell โดยนำเสนอเทคนิคขั้นสูง 5 ประการที่จะเสริมพลังให้กับเวิร์กโฟลว์ของคุณและยกระดับความเชี่ยวชาญของคุณ คว้าเทอร์มินัลของคุณแล้วเริ่มกันเลย!
1. การสร้างเซสชัน SSH โดยใช้ PowerShell
ก่อนอื่น คุณต้องสร้างเซสชัน SSH ระหว่างเครื่องในระบบของคุณและระบบระยะไกล ในการดำเนินการนี้ เราจะใช้ไคลเอ็นต์ SSH ที่สร้างไว้ใน PowerShell
# ข้อกำหนดเบื้องต้น:
- ตรวจสอบให้แน่ใจว่าติดตั้ง Windows 10 build 1809 หรือใหม่กว่าในเครื่องของคุณแล้ว
- ควรเปิดใช้งานคุณสมบัติไคลเอ็นต์ OpenSSH บนอุปกรณ์ Windows 10 ของคุณ ในการดำเนินการนี้ ให้ไปที่การตั้งค่า > แอป > คุณลักษณะเสริม ค้นหา ไคลเอนต์ OpenSSH และคลิก ติดตั้ง หากยังไม่ได้ติดตั้ง
# การเชื่อมต่อกับระบบระยะไกล:
เมื่อคุณปฏิบัติตามข้อกำหนดเบื้องต้นแล้ว ให้เปิด PowerShell และเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการเชื่อมต่อ SSH:
ssh @แทนที่ “ ด้วยชื่อผู้ใช้ของระบบระยะไกลและ “ ด้วยชื่อโฮสต์หรือที่อยู่ IP ของระบบระยะไกล
2. การดำเนินการคำสั่งจากระยะไกลด้วย PowerShell และ SSH
ข้อดีอย่างหนึ่งของการใช้ SSH กับ PowerShell คือความสามารถในการดำเนินการคำสั่งบนระบบระยะไกลโดยไม่จำเป็นต้องเข้าสู่ระบบด้วยตนเอง ส่วนนี้จะสาธิตวิธีใช้ SSH กับ PowerShell เพื่อดำเนินการคำสั่งจากระยะไกล
# การดำเนินการคำสั่งเดียว:
หากต้องการดำเนินการคำสั่งเดียวจากระยะไกล ให้ใช้คำสั่งต่อไปนี้:
ssh @ ”ตัวอย่างเช่น หากต้องการรับรายการไฟล์ในไดเร็กทอรี /tmp บนระบบรีโมต คุณจะต้องรัน:
ssh [email ‘ls /tmp’# การดำเนินการคำสั่งหลายคำสั่ง:
หากต้องการดำเนินการหลายคำสั่งจากระยะไกล ให้ใช้คำสั่งต่อไปนี้:
ssh @ ‘ ; ; ‘ตัวอย่างเช่น หากต้องการสร้างข้อมูลสำรองของไฟล์และบีบอัดไฟล์ คุณจะต้องเรียกใช้:
ssh [email ‘cp /var/log/syslog /tmp/syslog.bak ; gzip /tmp/syslog.bak’
โปรดทราบว่าในทั้งสองกรณี การดำเนินการคำสั่งเดียวและหลายคำสั่ง คำสั่งจะอยู่ภายในเครื่องหมายคำพูดเดียว
3. ถ่ายโอนไฟล์อัพโหลดและดาวน์โหลดอย่างปลอดภัย
เทคนิคขั้นสูงอีกประการหนึ่งในการใช้ SSH กับ PowerShell คือความสามารถในการถ่ายโอนไฟล์อย่างปลอดภัยระหว่างระบบภายในและระบบระยะไกล เพื่อจุดประสงค์นี้ เราจะใช้ SCP (Secure Copy Protocol) ซึ่งรวมอยู่ในไคลเอนต์ OpenSSH ของ PowerShell
#การอัพโหลดไฟล์:
หากต้องการอัพโหลดไฟล์ไปยังระบบรีโมต ให้รันคำสั่งต่อไปนี้:
scp @:ตัวอย่างเช่น หากต้องการอัปโหลดไฟล์ file.txt จากโฟลเดอร์ Documents ของคุณไปยังไดเร็กทอรี /tmp ของระบบระยะไกล คุณจะต้องเรียกใช้:
scp C:UsersYourUsernameDocumentsfile.txt [email :/tmp#ดาวน์โหลดไฟล์:
หากต้องการดาวน์โหลดไฟล์จากระบบรีโมต ให้รันคำสั่งต่อไปนี้:
scp @:ตัวอย่างเช่น หากต้องการดาวน์โหลดไฟล์ file.txt จากไดเร็กทอรี /tmp ของระบบระยะไกลไปยังโฟลเดอร์ Downloads คุณจะต้องเรียกใช้:
scp [email :/tmp/file.txt C:UsersYourUsernameDownloads4. การทำงานอัตโนมัติด้วยสคริปต์ PowerShell-SSH
ด้วยการรวม SSH เข้ากับสคริปต์ PowerShell คุณสามารถทำงานต่างๆ ที่เกี่ยวข้องกับระบบระยะไกลได้โดยอัตโนมัติ ต่อไปนี้คือสคริปต์ตัวอย่างที่ตรวจสอบการใช้งานดิสก์บนระบบระยะไกลหลายระบบ และส่งการแจ้งเตือนทางอีเมลเมื่อการใช้งานเกินเกณฑ์ที่กำหนด:
$servers = @( ‘server1.example.com’, ‘server2.example.com’, ‘server3.example.com’ )
$threshold = 90
foreach ($server in $servers) {
$diskUsage = ssh user@$server ‘df –output=pcent / | tail -1 | tr -dc “0-9″‘
if ([int]$diskUsage -gt $threshold) {
Send-MailMessage -From “[email ” -To “[email ” -Subject “Disk Usage Alert: $server” -Body “The disk usage on $server ($diskUsage%) has exceeded the threshold ($threshold%).” -SmtpServer “smtp.example.com”
}
}ในตัวอย่างนี้ สคริปต์จะอ่านรายชื่อเซิร์ฟเวอร์จากอาร์เรย์ชื่อ $servers จากนั้นวนซ้ำแต่ละเซิร์ฟเวอร์ ตรวจสอบการใช้งานดิสก์โดยดำเนินการคำสั่ง df ระยะไกล หากการใช้งานเกินเกณฑ์ที่ระบุ ระบบจะส่งการแจ้งเตือนทางอีเมลโดยใช้ Send-MailMessage cmdlet
5. การจัดการคีย์ SSH เพื่อการเข้าสู่ระบบที่ง่ายขึ้นและความปลอดภัยขั้นสูง
การจัดการคีย์ SSH เป็นสิ่งสำคัญสำหรับทั้งการทำให้กระบวนการเข้าสู่ระบบง่ายขึ้นและเพิ่มความปลอดภัย ต่อไปนี้คือวิธีที่คุณสามารถสร้าง คัดลอก และใช้คีย์ SSH กับ PowerShell:
# กำลังสร้างคู่คีย์ SSH:
หากต้องการสร้างคู่คีย์ SSH ใหม่ ให้รันคำสั่งต่อไปนี้:
ssh-keygen.exeสิ่งนี้จะสร้างคู่คีย์สาธารณะและคีย์ส่วนตัวในตำแหน่งเริ่มต้น %USERPROFILE%.sshid_rsa
# การคัดลอกกุญแจสาธารณะไปยังระบบระยะไกล:
หากต้องการคัดลอกพับลิกคีย์ไปยังไฟล์คีย์ที่ได้รับอนุญาตของระบบรีโมต ให้รันคำสั่งต่อไปนี้:
ssh-copy-id @เมื่อเพิ่มคีย์สาธารณะลงในระบบระยะไกลแล้ว คุณจะสามารถตรวจสอบสิทธิ์ได้โดยไม่ต้องป้อนรหัสผ่าน
ห่อขึ้น
ด้วยการรวมเทคนิคขั้นสูงเหล่านี้ไว้ในคลังแสงของคุณ คุณสามารถปลดล็อกศักยภาพสูงสุดของวิธีใช้ SSH กับ PowerShell ตั้งแต่การสร้างเซสชัน SSH ไปจนถึงการดำเนินการคำสั่งระยะไกล การถ่ายโอนไฟล์อย่างปลอดภัย การทำงานอัตโนมัติ และการจัดการคีย์ SSH วิธีการเหล่านี้จะเสริมศักยภาพเวิร์กโฟลว์ของคุณและเสริมความเชี่ยวชาญของคุณในการดูแลระบบและระบบอัตโนมัติ ด้วยใจที่เปิดกว้างและความเต็มใจที่จะทดลอง สิ่งที่คุณสามารถทำได้โดยใช้ SSH กับ PowerShell ไม่มีขีดจำกัด
วิธีตั้งค่าพรอมต์ PowerShell ด้วย Oh My Posh บน Windows 11
เรียนรู้ PowerShell ในเวลาไม่ถึง 2 ชั่วโมง
เราจะใช้ SSH ภายในสคริปต์ PowerShell ได้อย่างไร
การใช้ SSH ภายในสคริปต์ PowerShell สามารถทำได้โดยใช้ไลบรารี SSH.NET หรือ ไคลเอ็นต์ Windows OpenSSH ในตัว ต่อไปนี้เป็นวิธีใช้ทั้งสองวิธี:
1. การใช้ไลบรารี SSH.NET:
ขั้นแรก คุณต้องติดตั้งไลบรารี SSH.NET โดยใช้คำสั่งต่อไปนี้:
Install-Package -Name SSH.NETเมื่อติดตั้งแล้ว คุณจะสามารถใช้งานได้ในสคริปต์ PowerShell ดังต่อไปนี้:
# Import the SSH.NET library
Import-Module -Name Renci.SshNet
# Set your SSH credentials and target host
$UserName = “”
$Password = ConvertTo-SecureString “” -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential($UserName, $Password)
$Host = “”
# Create an SSH connection
$Connection = New-Object Renci.SshNet.SshClient($Host, $Credential.UserName, $Credential.Password)
$Connection.Connect()
# Execute a command on the remote host
$Command = “ls”
$Result = $Connection.RunCommand($Command)
# Display the command output
Write-Host $Result.Output
# Close the connection
$Connection.Disconnect()2. การใช้ไคลเอ็นต์ Windows OpenSSH:
ไคลเอ็นต์ Windows OpenSSH พร้อมใช้งานตามค่าเริ่มต้นใน Windows 10 (build 1809) และใหม่กว่า หากต้องการใช้ในสคริปต์ PowerShell ให้ทำตามขั้นตอนเหล่านี้:
# Set your SSH credentials and target host
$UserName = “”
$Password = “”
$Host = “”
# Create a PSCredential object
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential($UserName, $SecurePassword)
# Execute a command on the remote host using the ssh command
$Command = “ls”
$Result = Invoke-Command -ScriptBlock {
ssh $args[0]@$args[1] $args[2]
} -ArgumentList $Credential.UserName, $Host, $Command
# Display the command output
Write-Host $Resultอย่าลืมแทนที่
ฉันจะเริ่มต้น SSH ภายใน Windows 10 PowerShell ได้อย่างไร
หากต้องการเริ่มต้น SSH ภายใน Windows 10 PowerShell คุณต้องตรวจสอบให้แน่ใจว่าได้ติดตั้งไคลเอ็นต์ OpenSSH ไว้ในระบบของคุณแล้ว ทำตามขั้นตอนเหล่านี้:
1. เปิดใช้งานไคลเอ็นต์ OpenSSH:
เปิด PowerShell ด้วยสิทธิ์ผู้ดูแลระบบโดยคลิกขวาที่ปุ่ม Start และเลือก Windows PowerShell (Admin) หรือโดยการค้นหา PowerShell ในเมนู Start คลิกขวา และเลือก Run as administrator
ป้อนคำสั่งต่อไปนี้เพื่อเปิดใช้งานไคลเอ็นต์ OpenSSH:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.02. ตรวจสอบการติดตั้ง:
เพื่อยืนยันว่ามีการติดตั้งไคลเอ็นต์ OpenSSH แล้ว ให้พิมพ์คำสั่งต่อไปนี้ใน PowerShell:
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’หากการติดตั้งสำเร็จ คุณจะเห็นรายการคุณสมบัติ OpenSSH พร้อมสถานะที่เกี่ยวข้อง ไคลเอ็นต์ OpenSSH ควรแสดงรายการโดยมีสถานะเป็น ติดตั้งแล้ว
3. เริ่มต้นการเชื่อมต่อ SSH:
เมื่อติดตั้งไคลเอ็นต์ OpenSSH แล้ว คุณสามารถเริ่มต้นการเชื่อมต่อ SSH ภายใน PowerShell ได้โดยใช้คำสั่งต่อไปนี้:
ssh username@hostnameแทนที่ ชื่อผู้ใช้ ด้วยบัญชีผู้ใช้ระยะไกลของคุณ และแทนที่ ชื่อโฮสต์ ด้วยที่อยู่ IP หรือชื่อโดเมนของเซิร์ฟเวอร์ระยะไกล หลังจากป้อนคำสั่งนี้ คุณจะได้รับแจ้งให้ใส่รหัสผ่าน
ด้วยการทำตามขั้นตอนเหล่านี้ คุณสามารถเริ่มต้นการเชื่อมต่อ SSH ภายใน Windows 10 PowerShell ได้สำเร็จ
เราจะสร้างคีย์ SSH ด้วย PowerShell ได้อย่างไร
หากต้องการสร้างคีย์ SSH ด้วย PowerShell คุณสามารถใช้คำสั่ง ssh-keygen ขั้นตอนต่อไปนี้จะแนะนำคุณตลอดกระบวนการ:
1. เปิด PowerShell ในฐานะผู้ดูแลระบบ
2. รันคำสั่งต่อไปนี้เพื่อให้แน่ใจว่าโมดูล OpenSSH ได้รับการติดตั้งแล้ว:
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’3. หากไม่ได้ติดตั้งโมดูล คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.04. เมื่อติดตั้งโมดูล OpenSSH แล้ว คุณสามารถสร้างคีย์ SSH ได้โดยการรันคำสั่ง ssh-keygen:
ssh-keygen -t rsa -b 4096 -C “[email ”แทนที่ [email ด้วยที่อยู่อีเมลจริงของคุณ ตัวเลือก -t ระบุประเภทของคีย์ที่จะสร้าง (ในกรณีนี้คือ RSA) ตัวเลือก -b กำหนดความยาวของคีย์ (4096 บิต) และ < ตัวเลือก-C เพิ่มความคิดเห็นเพื่อให้ระบุรหัสได้ง่ายขึ้น
5. คำสั่งจะแจ้งให้คุณป้อนเส้นทางของไฟล์เพื่อบันทึกคีย์ส่วนตัว กด Enter เพื่อใช้ตำแหน่งเริ่มต้น หรือระบุเส้นทางที่กำหนดเอง หากต้องการ
6. ถัดไป คุณจะถูกขอให้ป้อนข้อความรหัสผ่านเพื่อรักษาความปลอดภัยคีย์ส่วนตัว คุณสามารถป้อนข้อความรหัสผ่านหรือปล่อยว่างไว้หากไม่มีข้อความรหัสผ่าน
คำสั่ง ssh-keygen จะสร้างคีย์สาธารณะและคีย์ส่วนตัว รหัสสาธารณะจะมีส่วนขยาย .pub และสามารถแชร์กับผู้อื่นเพื่อให้สามารถเข้าถึงทรัพยากรได้ รหัสส่วนตัวควรได้รับการเก็บรักษาไว้อย่างปลอดภัยและห้ามแชร์
เราจะใช้ SSH กับคำสั่ง Windows ใน PowerShell ได้อย่างไร
การใช้ SSH กับคำสั่ง Windows ใน PowerShell เป็นวิธีที่ยอดเยี่ยมในการจัดการระบบระยะไกลอย่างปลอดภัย ตั้งแต่ Windows 10 และ Windows Server 2019 เป็นต้นไป ตอนนี้ OpenSSH จะถูกรวมไว้เป็นค่าเริ่มต้น ทำให้ง่ายต่อการเชื่อมต่อกับโฮสต์ระยะไกลโดยใช้โปรโตคอล SSH นี่คือวิธีที่คุณสามารถใช้ SSH ใน PowerShell:
1. ติดตั้ง OpenSSH (ไม่บังคับ): หากคุณใช้ Windows เวอร์ชันเก่าหรือไม่ได้ติดตั้ง OpenSSH คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.02. เริ่มตัวแทน SSH: ก่อนที่จะใช้คีย์ SSH ในการตรวจสอบสิทธิ์ คุณจะต้องเริ่มบริการตัวแทน SSH ก่อน เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าประเภทการเริ่มต้นบริการเป็นอัตโนมัติและเริ่มต้น:
Set-Service -Name ssh-agent -StartupType Automatic; Start-Service ssh-agent3. สร้างคีย์ SSH (ไม่บังคับ): หากคุณยังไม่มีคู่คีย์ SSH คุณสามารถสร้างคีย์ได้โดยใช้คำสั่งต่อไปนี้:
ssh-keygen -t rsa -b 4096สิ่งนี้จะสร้างคู่คีย์ RSA ใหม่ที่มีขนาดคีย์ 4096 บิต
4. คัดลอกคีย์ SSH สาธารณะไปยังโฮสต์ระยะไกล: หากต้องการตรวจสอบสิทธิ์โดยไม่ต้องใช้รหัสผ่าน ให้คัดลอกคีย์ SSH สาธารณะของคุณไปยังโฮสต์ระยะไกลโดยใช้คำสั่งต่อไปนี้:
ssh-copy-id username@remote-hostแทนที่ ชื่อผู้ใช้ ด้วยชื่อผู้ใช้จริงของคุณบนโฮสต์ระยะไกล และแทนที่ remote-host ด้วยชื่อโฮสต์หรือที่อยู่ IP ของระบบระยะไกล
5. เชื่อมต่อกับโฮสต์ระยะไกลผ่าน SSH: ตอนนี้คุณสามารถเชื่อมต่อกับโฮสต์ระยะไกลได้โดยใช้คำสั่ง SSH ดังนี้:
ssh username@remote-hostอีกครั้ง แทนที่ ชื่อผู้ใช้ และ remote-host ด้วยค่าที่เหมาะสม
ตอนนี้คุณเชื่อมต่อกับโฮสต์ระยะไกลผ่าน SSH โดยใช้ PowerShell แล้ว คุณสามารถรันคำสั่งใดๆ บนระบบรีโมต ถ่ายโอนไฟล์อย่างปลอดภัย และทำงานต่างๆ ที่เกี่ยวข้องกับการจัดการระยะไกล
ฉันจะสร้างการเชื่อมต่อ SSH กับเซิร์ฟเวอร์ระยะไกลโดยใช้บรรทัดคำสั่ง PowerShell ได้อย่างไร
หากต้องการสร้างการเชื่อมต่อ SSH กับเซิร์ฟเวอร์ระยะไกลโดยใช้บรรทัดคำสั่ง PowerShell คุณสามารถใช้คำสั่ง SSH ตามด้วยพารามิเตอร์ที่จำเป็น เช่น ชื่อผู้ใช้และที่อยู่ IP หรือชื่อโฮสต์ของเซิร์ฟเวอร์ระยะไกล คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการทำเช่นนี้:
1. เปิด PowerShell โดยกด Windows Key + X และเลือก PowerShell (Admin)
2. ติดตั้งแพ็คเกจ/โมดูล OpenSSH หากยังไม่ได้ติดตั้ง คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.03. เมื่อติดตั้งแพ็คเกจ OpenSSH แล้ว คุณสามารถใช้คำสั่ง ssh เพื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้ ไวยากรณ์พื้นฐานคือ:
ssh username@remote-serverแทนที่ ชื่อผู้ใช้ ด้วยชื่อผู้ใช้ของเซิร์ฟเวอร์ระยะไกลของคุณ และแทนที่ เซิร์ฟเวอร์ระยะไกล ด้วยที่อยู่ IP หรือชื่อโฮสต์ของเซิร์ฟเวอร์ระยะไกล
ตัวอย่างเช่น:
ssh [email 4. เมื่อได้รับแจ้ง ให้ป้อนรหัสผ่านสำหรับบัญชีผู้ใช้ระยะไกล เมื่อการรับรองความถูกต้องสำเร็จ คุณจะเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล และคุณสามารถเริ่มรันคำสั่งบนระบบระยะไกลได้
โปรดจำไว้ว่าเซิร์ฟเวอร์ระยะไกลจะต้องมีเซิร์ฟเวอร์ SSH ที่ทำงานและรับฟังการเชื่อมต่อขาเข้า
คำสั่งที่จำเป็นสำหรับการจัดการคีย์ SSH และการกำหนดค่าการเชื่อมต่อ SSH ใน PowerShell คืออะไร
ใน PowerShell คุณสามารถจัดการคีย์ SSH และกำหนดค่าการเชื่อมต่อ SSH โดยใช้การรวมกันของยูทิลิตี้ OpenSSH และคำสั่ง PowerShell ดั้งเดิม นี่คือคำสั่งที่จำเป็น:
1. ssh-keygen: คำสั่งนี้ใช้เพื่อสร้าง จัดการ และแปลงคีย์การตรวจสอบสิทธิ์สำหรับโปรโตคอล SSH หากต้องการสร้างคู่คีย์ SSH ใหม่ ให้รันคำสั่งต่อไปนี้:
ssh-keygen -t rsa -b 4096 -C “[email ”2. รับเนื้อหา: คำสั่งนี้ใช้เพื่ออ่านเนื้อหาของไฟล์ คุณสามารถใช้คำสั่งนี้เพื่อแสดงคีย์สาธารณะที่คุณต้องเพิ่มลงในไฟล์ authorized_keys ของเซิร์ฟเวอร์ระยะไกล:
Get-Content C:UsersYourUsername.sshid_rsa.pub3. ssh-copy-id: คำสั่งนี้ช่วยให้คุณสามารถคัดลอกคีย์สาธารณะของคุณไปยังเซิร์ฟเวอร์ระยะไกล สามารถติดตั้งผ่านระบบย่อย Windows สำหรับ Linux (WSL) หรือโดยการใช้งานทางเลือกอื่นเช่น scp นี่คือวิธีการใช้งาน:
ssh-copy-id user@remote_serverหากคุณไม่มี ssh-copy-id คุณสามารถใช้ scp เป็นทางเลือก:
scp C:UsersYourUsername.sshid_rsa.pub user@remote_server:~/temp.pub4. ssh: คำสั่งที่ใช้ในการเริ่มต้นการเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ระยะไกล หลังจากตั้งค่าคู่คีย์ SSH แล้ว คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้โดยใช้คำสั่งต่อไปนี้:
ssh user@remote_server5. รายการใหม่: คำสั่งนี้สร้างรายการใหม่ เช่น ไฟล์หรือไดเร็กทอรี คุณอาจต้องสร้างไฟล์ config สำหรับไคลเอ็นต์ SSH ของคุณในไดเรกทอรี ~/.ssh หากต้องการสร้างไฟล์นี้ ให้ใช้คำสั่งต่อไปนี้:
New-Item -Path C:UsersYourUsername.sshconfig -ItemType File6. เพิ่มเนื้อหา: คำสั่งนี้ใช้เพื่อผนวกเนื้อหาเข้ากับไฟล์ คุณสามารถใช้คำสั่งนี้เพื่อเพิ่มการตั้งค่าเฉพาะให้กับไฟล์ SSH config ของคุณ ตัวอย่างเช่น หากต้องการกำหนดค่านามแฝงสำหรับเซิร์ฟเวอร์ระยะไกล ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ config ของคุณ:
Add-Content -Path C:UsersYourUsername.sshconfig -Value “Host remote_aliasnHostName remote_servernUser user`nIdentityFile ~/.ssh/id_rsa”ด้วยคำสั่ง PowerShell และยูทิลิตี้ OpenSSH เหล่านี้ คุณสามารถจัดการคีย์ SSH และกำหนดค่าการเชื่อมต่อ SSH ได้อย่างมีประสิทธิภาพ
คุณสามารถให้คำแนะนำทีละขั้นตอนเพื่อทำให้เซสชัน SSH ใน PowerShell เป็นอัตโนมัติสำหรับเซิร์ฟเวอร์ระยะไกลหลายเครื่องได้หรือไม่
ในคู่มือนี้ เราจะสาธิตวิธีทำให้เซสชัน SSH ใน PowerShell เป็นแบบอัตโนมัติสำหรับเซิร์ฟเวอร์ระยะไกลหลายเครื่องโดยใช้โมดูล Pode Pode เป็นโมดูลข้ามแพลตฟอร์มสำหรับจัดการและทำให้การเชื่อมต่อ SSH เป็นแบบอัตโนมัติ
ขั้นตอนที่ 1: ติดตั้งโมดูล Pode
ขั้นแรก ให้ติดตั้งโมดูล Pode จาก PowerShell Gallery โดยรันคำสั่งต่อไปนี้:
Install-Module -Name Podeขั้นตอนที่ 2: นำเข้าโมดูล Pode
นำเข้าโมดูล Pode ไปยังเซสชัน PowerShell ของคุณเพื่อให้ฟังก์ชันต่างๆ พร้อมใช้งาน:
Import-Module Podeขั้นตอนที่ 3: กำหนดเซิร์ฟเวอร์ระยะไกลและข้อมูลรับรอง
สร้างอาร์เรย์ของ IP เซิร์ฟเวอร์ระยะไกลหรือชื่อโฮสต์และข้อมูลประจำตัวที่เกี่ยวข้อง ตรวจสอบให้แน่ใจว่าได้แทนที่ตัวยึดตำแหน่งด้วยเซิร์ฟเวอร์และข้อมูลรับรองจริงของคุณ:
$RemoteServers = @(
@{
Host = ‘192.168.1.1’
Username = ‘User1’
Password = ‘Password1’
},
@{
Host = ‘192.168.1.2’
Username = ‘User2’
Password = ‘Password2’
}
)ขั้นตอนที่ 4: กำหนดสคริปต์อัตโนมัติ
สร้างบล็อกสคริปต์ด้วยคำสั่งที่คุณต้องการดำเนินการบนเซิร์ฟเวอร์ระยะไกลแต่ละตัว:
$ScriptToExecute = {
Param($RemoteServer)
# Establish SSH session
$Session = New-PodeSshSession -HostName $RemoteServer.Host -UserName $RemoteServer.Username -Password $RemoteServer.Password
# Execute commands
$Result = Invoke-PodeSshCommand -Session $Session -Command ‘uname -a’
# Print results
Write-Host “Results from $($RemoteServer.Host):n$($Result.Output)n”
# Close SSH session
Close-PodeSshSession -Session $Session
}ขั้นตอนที่ 5: ทำให้เซสชัน SSH เป็นแบบอัตโนมัติ
วนซ้ำผ่านเซิร์ฟเวอร์ระยะไกล เรียกใช้บล็อกสคริปต์และดำเนินการ:
ForEach ($RemoteServer in $RemoteServers) {
Invoke-Command -ScriptBlock $ScriptToExecute -ArgumentList $RemoteServer
}ขั้นตอนที่ 6: บันทึกและเรียกใช้สคริปต์
บันทึกข้อความทั้งหมดลงในไฟล์สคริปต์ PowerShell (เช่น AutomateSSH.ps1) และดำเนินการในเซสชัน PowerShell ของคุณ:
.AutomateSSH.ps1สคริปต์นี้จะทำให้เซสชัน SSH อัตโนมัติสำหรับเซิร์ฟเวอร์ระยะไกลหลายเครื่องของคุณ และดำเนินการคำสั่งที่กำหนดไว้ในแต่ละเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าได้แก้ไขสคริปต์ตามความต้องการและข้อกำหนดเฉพาะของคุณ