GeoNetAgent, LDAPWeb, server-audit, server-connection
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 lines
1.8 KiB

# Fix SSH key — upload LF scripts via SCP (no CRLF pipe issues)
$ErrorActionPreference = 'Stop'
$hostIp = '10.100.1.28'
$key = Join-Path $env:USERPROFILE '.ssh\id_ed25519_mailcow'
$pub = "$key.pub"
$remoteSh = Join-Path $PSScriptRoot 'remote-reset-authorized-keys.sh'
# Perketat ACL private key (Windows OpenSSH)
Write-Host "Fixing private key ACL..."
icacls $key /inheritance:r 2>$null | Out-Null
icacls $key /grant:r "${env:USERNAME}:(R)" 2>$null | Out-Null
# Pub key LF-only
$tempPub = Join-Path $env:TEMP 'geonet_mailcow_key.pub'
$keyLine = (Get-Content $pub -Raw).Trim() -replace "`r", ""
[System.IO.File]::WriteAllText($tempPub, $keyLine + "`n")
# Remote script LF-only
$shContent = (Get-Content $remoteSh -Raw) -replace "`r", ""
$tempSh = Join-Path $env:TEMP 'remote-reset-authorized-keys.sh'
[System.IO.File]::WriteAllText($tempSh, $shContent)
Write-Host "Upload + reset on root@${hostIp} (password 2x: scp + ssh)..."
scp -o PreferredAuthentications=password -o PubkeyAuthentication=no $tempPub "root@${hostIp}:/tmp/geonet_mailcow_key.pub"
scp -o PreferredAuthentications=password -o PubkeyAuthentication=no $tempSh "root@${hostIp}:/tmp/remote-reset-authorized-keys.sh"
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no "root@${hostIp}" 'chmod +x /tmp/remote-reset-authorized-keys.sh && bash /tmp/remote-reset-authorized-keys.sh && rm -f /tmp/remote-reset-authorized-keys.sh'
Remove-Item $tempPub, $tempSh -Force -ErrorAction SilentlyContinue
Write-Host ""
Write-Host "Test key-only..."
ssh -i $key -o BatchMode=yes -o IdentitiesOnly=yes -o PreferredAuthentications=publickey "root@${hostIp}" "echo KEY_AUTH_OK"
if ($LASTEXITCODE -ne 0) {
Write-Host ""
Write-Host "Masih gagal — ambil auth.log (password sekali):"
Write-Host " ssh root@$hostIp `"grep sshd /var/log/auth.log | tail -20`""
exit 1
}
Write-Host "Success. Login: ssh mailcow"