ค้นหาเว็บไซต์

การเรียนรู้การเชื่อมต่อที่ปลอดภัย: วิธีใช้ 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:UsersYourUsernameDownloads

4. การทำงานอัตโนมัติด้วยสคริปต์ 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.0

2. ตรวจสอบการติดตั้ง:
เพื่อยืนยันว่ามีการติดตั้งไคลเอ็นต์ 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.0

4. เมื่อติดตั้งโมดูล 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.0

2. เริ่มตัวแทน SSH: ก่อนที่จะใช้คีย์ SSH ในการตรวจสอบสิทธิ์ คุณจะต้องเริ่มบริการตัวแทน SSH ก่อน เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าประเภทการเริ่มต้นบริการเป็นอัตโนมัติและเริ่มต้น:

Set-Service -Name ssh-agent -StartupType Automatic; Start-Service ssh-agent

3. สร้างคีย์ 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.0

3. เมื่อติดตั้งแพ็คเกจ 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.pub

3. 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.pub

4. ssh: คำสั่งที่ใช้ในการเริ่มต้นการเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ระยะไกล หลังจากตั้งค่าคู่คีย์ SSH แล้ว คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้โดยใช้คำสั่งต่อไปนี้:

ssh user@remote_server

5. รายการใหม่: คำสั่งนี้สร้างรายการใหม่ เช่น ไฟล์หรือไดเร็กทอรี คุณอาจต้องสร้างไฟล์ config สำหรับไคลเอ็นต์ SSH ของคุณในไดเรกทอรี ~/.ssh หากต้องการสร้างไฟล์นี้ ให้ใช้คำสั่งต่อไปนี้:

New-Item -Path C:UsersYourUsername.sshconfig -ItemType File

6. เพิ่มเนื้อหา: คำสั่งนี้ใช้เพื่อผนวกเนื้อหาเข้ากับไฟล์ คุณสามารถใช้คำสั่งนี้เพื่อเพิ่มการตั้งค่าเฉพาะให้กับไฟล์ 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 อัตโนมัติสำหรับเซิร์ฟเวอร์ระยะไกลหลายเครื่องของคุณ และดำเนินการคำสั่งที่กำหนดไว้ในแต่ละเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าได้แก้ไขสคริปต์ตามความต้องการและข้อกำหนดเฉพาะของคุณ

บทความที่เกี่ยวข้อง