win-remote-ssh.ps1
· 1.4 KiB · PowerShell
Raw
Set-ExecutionPolicy RemoteSigned
New-Item -path $profile -type file -force
Add-Content -path $profile -value '[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"'
& $profile
iwr -useb get.scoop.sh | iex
scoop install git
scoop update
iwr https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.1.0.0p1-Beta/OpenSSH-Win64.zip -outfile "C:\Program Files\OpenSSH-Win64.zip"
expand-archive -path "C:\Program Files\OpenSSH-Win64.zip" -destinationpath "C:\Program Files"
move-item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH"
powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1"
add-content -path "C:\programdata\ssh\sshd_config" -value "PasswordAuthentication no"
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\Program Files\OpenSSH\sshd.exe"
set-service sshd -StartupType automatic
start-service sshd
scoop install vim
vim C:\ProgramData\ssh\administrators_authorized_keys
$acl = Get-Acl C:\ProgramData\ssh\administrators_authorized_keys
$acl.SetAccessRuleProtection($true, $false)
$administratorsRule = New-Object system.security.accesscontrol.filesystemaccessrule("Administrators","FullControl","Allow")
$systemRule = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow")
$acl.SetAccessRule($administratorsRule)
$acl.SetAccessRule($systemRule)
$acl | Set-Acl
| 1 | Set-ExecutionPolicy RemoteSigned |
| 2 | New-Item -path $profile -type file -force |
| 3 | Add-Content -path $profile -value '[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"' |
| 4 | & $profile |
| 5 | iwr -useb get.scoop.sh | iex |
| 6 | scoop install git |
| 7 | scoop update |
| 8 | iwr https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.1.0.0p1-Beta/OpenSSH-Win64.zip -outfile "C:\Program Files\OpenSSH-Win64.zip" |
| 9 | expand-archive -path "C:\Program Files\OpenSSH-Win64.zip" -destinationpath "C:\Program Files" |
| 10 | move-item "C:\Program Files\OpenSSH-Win64" "C:\Program Files\OpenSSH" |
| 11 | powershell.exe -ExecutionPolicy Bypass -File "C:\Program Files\OpenSSH\install-sshd.ps1" |
| 12 | add-content -path "C:\programdata\ssh\sshd_config" -value "PasswordAuthentication no" |
| 13 | New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\Program Files\OpenSSH\sshd.exe" |
| 14 | set-service sshd -StartupType automatic |
| 15 | start-service sshd |
| 16 | scoop install vim |
| 17 | vim C:\ProgramData\ssh\administrators_authorized_keys |
| 18 | $acl = Get-Acl C:\ProgramData\ssh\administrators_authorized_keys |
| 19 | $acl.SetAccessRuleProtection($true, $false) |
| 20 | $administratorsRule = New-Object system.security.accesscontrol.filesystemaccessrule("Administrators","FullControl","Allow") |
| 21 | $systemRule = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow") |
| 22 | $acl.SetAccessRule($administratorsRule) |
| 23 | $acl.SetAccessRule($systemRule) |
| 24 | $acl | Set-Acl |