WindowsでCygwin環境を使用することは、自動化のための非常に一般的なソリューションです。
Cygwinのインストールとsshサーバーの有効化を自動化するスクリプトを探しています。
私はそれを書こうと試みることができましたが、問題の1つは、cygwinをダウンロードするための行をダウンロードするために何を使用できるかわからないことです。
Cygwinインストールの自動化について説明します ここ 。 Cygwinをインストールしたら、ssh-Host-configを実行してsshサーバーをセットアップする必要があります。自動化がどれほど簡単かはわかりませんが、期待どおりに何かを実行して、2つのスクリプトをチェーンすることができます。
Write-Host "Downloading Cygwin ..." -ForegroundColor Cyan
$cygwinSetup = '{0}\cygwin-setup.exe' -f $env:SystemDrive
$startBitsTransfer = @{
Source = 'https://www.cygwin.com/setup-x86.exe'
Destination = $cygwinSetup
ErrorAction = 'Stop'
}
if ([Environment]::Is64BitOperatingSystem) {
$startBitsTransfer.Source = 'https://www.cygwin.com/setup-x86_64.exe'
}
try {
Start-BitsTransfer @startBitsTransfer
} catch {
(New-Object Net.WebClient).DownloadFile($startBitsTransfer.Source, $startBitsTransfer.Destination)
}
Write-Host "Installing Cygwin & Packages ..." -ForegroundColor Cyan
$run = @{
FilePath = $cygwinSetup
ArgumentList = @(
'--quiet-mode',
'--upgrade-also',
'--delete-orphans',
'--disable-buggy-antivirus',
'--root', ('{0}\cygwin' -f $env:SystemDrive),
'--site', 'http://cygwin.mirror.constant.com',
'--local-package-dir', ('{0}\Downloads' -f $env:PUBLIC),
'--packages', 'git,curl,jq,libcurl,openssh,cygrunsrv,more,grep,stat,cygpath'
)
Wait = $true
PassThru = $true
}
$result = Start-Process @run
Write-Host "Return Code: $($result.ExitCode)" -ForegroundColor Magenta
Write-Host "Configure SSH ..." -ForegroundColor Cyan
$run = @{
FilePath = 'C:\cygwin\bin\bash.exe'
ArgumentList = @(
'--login',
'-c',
'"/bin/ssh-Host-config', '--yes', '--port', 22, '--pwd', (New-Guid), '|', 'more', '/E', '/P"'
)
Wait = $true
PassThru = $true
}
$result = Start-Process @run
Write-Host "Return Code: $($result.ExitCode)" -ForegroundColor Magenta
Write-Host "Enable SSH Firewall ..." -ForegroundColor Cyan
New-NetFirewallRule -DisplayName "Allow SSHD" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 22
FWIW、CygSSHと呼ばれるパッケージを作成しました。これは基本的にCygwinバージョンのOpenSSH(サーバーおよび/またはクライアント)とrsyncの便利なパッケージです。それはGitHubにあります:
https://github.com/Bill-Stewart/CygSSH
Releases
タブには、インストーラーの実行可能ファイルがあります。