deploy
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Appends local id_ed25519.pub to root authorized_keys on the server (uses scripts/deploy.env).
|
||||
# Run from repo root: .\scripts\register-ssh-key-for-root.ps1
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$scriptsDir = $PSScriptRoot
|
||||
$deployEnv = Join-Path $scriptsDir "deploy.env"
|
||||
|
||||
if (-not (Test-Path $deployEnv)) {
|
||||
Write-Error "Missing scripts/deploy.env. Copy from deploy.env.example and set DEPLOY_HOST."
|
||||
}
|
||||
|
||||
. "$PSScriptRoot\read-deploy-env.ps1"
|
||||
Import-DeployDotEnv $deployEnv
|
||||
|
||||
$deployHost = [Environment]::GetEnvironmentVariable("DEPLOY_HOST", "Process")
|
||||
$user = [Environment]::GetEnvironmentVariable("DEPLOY_USER", "Process")
|
||||
if ([string]::IsNullOrWhiteSpace($user)) { $user = "root" }
|
||||
|
||||
if ([string]::IsNullOrWhiteSpace($deployHost)) {
|
||||
Write-Error "DEPLOY_HOST is not set in scripts/deploy.env."
|
||||
}
|
||||
|
||||
$keyPub = Join-Path $env:USERPROFILE ".ssh\id_ed25519.pub"
|
||||
if (-not (Test-Path $keyPub)) {
|
||||
Write-Error "Public key not found: $keyPub"
|
||||
}
|
||||
|
||||
$remote = "${user}@${deployHost}"
|
||||
Write-Host "Adding key to $remote (from $keyPub). Enter password if SSH asks."
|
||||
$bashCmd = "umask 077; mkdir -p .ssh && touch .ssh/authorized_keys && chmod 700 .ssh && cat >> .ssh/authorized_keys && chmod 600 .ssh/authorized_keys"
|
||||
Get-Content -Raw $keyPub | ssh -o StrictHostKeyChecking=accept-new $remote $bashCmd
|
||||
|
||||
Write-Host "Done. Verify: ssh $remote echo ssh-ok"
|
||||
Reference in New Issue
Block a user