Adding --ssh-public-keys parameter to secure initial deployment.

This commit is contained in:
2026-04-30 17:03:38 +02:00
parent fa4808f34d
commit 0ad90d81d6
+5 -3
View File
@@ -30,6 +30,7 @@ Options:
-i, --ip IP Static IP (e.g. 192.168.1.100/24). -i, --ip IP Static IP (e.g. 192.168.1.100/24).
-C, --cmode CMODE Console mode (console or tty). Default: console. -C, --cmode CMODE Console mode (console or tty). Default: console.
-T, --tags TAGS Tags for the container (optional). -T, --tags TAGS Tags for the container (optional).
-k, --ssh-public-keys KEYS SSH public keys for the container.
--pve-host HOST Proxmox host (e.g. pve). --pve-host HOST Proxmox host (e.g. pve).
--pve-user USER Proxmox user (default: admin). --pve-user USER Proxmox user (default: admin).
--pve-port PORT SSH port for Proxmox (default: 22). --pve-port PORT SSH port for Proxmox (default: 22).
@@ -61,6 +62,7 @@ UNPRIVILEGED="${UNPRIVILEGED:-0}"
IP="${IP:-}" IP="${IP:-}"
CMODE="${CMODE:-console}" CMODE="${CMODE:-console}"
TAGS="${TAGS:-}" TAGS="${TAGS:-}"
SSH_PUBLIC_KEYS="${SSH_PUBLIC_KEYS:-}"
# --- Parse Arguments with docopts (Lowest Priority) --- # --- Parse Arguments with docopts (Lowest Priority) ---
args=$(docopts -h "$usage" : "$@") args=$(docopts -h "$usage" : "$@")
@@ -104,8 +106,8 @@ fi
if [ -z "$TEMPLATE" ] || [ -z "$ROOTFS_SIZE" ] || [ -z "$CORES" ] || \ if [ -z "$TEMPLATE" ] || [ -z "$ROOTFS_SIZE" ] || [ -z "$CORES" ] || \
[ -z "$MEMORY" ] || [ -z "$SWAP" ] || [ -z "$PASSWORD" ] || \ [ -z "$MEMORY" ] || [ -z "$SWAP" ] || [ -z "$PASSWORD" ] || \
[ -z "$BRIDGE" ] || [ -z "$DOMAIN" ] || [ -z "$UNPRIVILEGED" ] || \ [ -z "$BRIDGE" ] || [ -z "$DOMAIN" ] || [ -z "$UNPRIVILEGED" ] || \
[ -z "$CMODE" ] || [ -z "$PVE_HOST" ] || [ -z "$PVE_USER" ] || \ [ -z "$CMODE" ] || [ -z "$SSH_PUBLIC_KEYS" ] || \
[ -z "$PVE_PORT" ]; then [ -z "$PVE_HOST" ] || [ -z "$PVE_USER" ] || [ -z "$PVE_PORT" ]; then
echo "❌ Error: One or more critical parameters are missing." >&2 echo "❌ Error: One or more critical parameters are missing." >&2
exit 1 exit 1
fi fi
@@ -147,7 +149,7 @@ echo "🚀 Creating LXC container $SHORT_NAME on $PVE_HOST..."
CREATE_CMD="pct create $ROOTFS_SIZE $TEMPLATE --cores $CORES \ CREATE_CMD="pct create $ROOTFS_SIZE $TEMPLATE --cores $CORES \
--memory $MEMORY --swap $SWAP --hostname $SHORT_NAME.$DOMAIN \ --memory $MEMORY --swap $SWAP --hostname $SHORT_NAME.$DOMAIN \
--password $PASSWORD --unprivileged $UNPRIVILEGED --net0 $NET_OPTS \ --password $PASSWORD --unprivileged $UNPRIVILEGED --net0 $NET_OPTS \
--onboot 1 --cmode $CMODE" --onboot 1 --cmode $CMODE --ssh-public-keys $SSH_PUBLIC_KEYS"
if [ -n "$TAGS" ]; then if [ -n "$TAGS" ]; then
CREATE_CMD="$CREATE_CMD --tags $TAGS" CREATE_CMD="$CREATE_CMD --tags $TAGS"
fi fi