Files
runtipi/apps/rego-tunnel/build/rego/setup-ssh-keys.ps1
2025-12-18 09:00:15 +00:00

44 lines
1.5 KiB
PowerShell
Executable File

# Setup SSH Keys
# Run as Administrator in PowerShell
param(
[string]$Username = $env:USERNAME,
[string]$PublicKey
)
if (-not $PublicKey) {
# Default public key - replace with your own or pass as parameter
$PublicKey = Read-Host "Enter SSH public key (or press Enter for default)"
if (-not $PublicKey) {
$PublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGHUQnw0WfeFRQx76UlImXXhu3xeOH41PmDRid8pWK1D"
}
}
Write-Host "=== Setting up SSH Keys for $Username ===" -ForegroundColor Cyan
# User authorized_keys
$userSshDir = "C:\Users\$Username\.ssh"
$userAuthKeys = "$userSshDir\authorized_keys"
Write-Host "Creating user .ssh directory..." -ForegroundColor Yellow
New-Item -ItemType Directory -Path $userSshDir -Force | Out-Null
Write-Host "Adding key to user authorized_keys..." -ForegroundColor Yellow
Add-Content -Path $userAuthKeys -Value $PublicKey -Force
# Fix permissions for user file
icacls $userAuthKeys /inheritance:r /grant "${Username}:F" /grant "SYSTEM:F"
# Administrator authorized_keys (for admin users)
$adminAuthKeys = "C:\ProgramData\ssh\administrators_authorized_keys"
Write-Host "Adding key to administrators_authorized_keys..." -ForegroundColor Yellow
Add-Content -Path $adminAuthKeys -Value $PublicKey -Force
# Fix permissions for admin file (required by OpenSSH)
icacls $adminAuthKeys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
Write-Host ""
Write-Host "SSH keys configured for '$Username'!" -ForegroundColor Green
Write-Host "You can now SSH in with the corresponding private key." -ForegroundColor Yellow