56 lines
2.0 KiB
Bash
56 lines
2.0 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Farbige Ausgaben
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Konfiguration
|
|
CA_HOST="100.87.87.5" # IP der CA-VM
|
|
CA_USER="alf" # Nutzer auf der CA-VM
|
|
CA_PORT=22 # Port für SSH-Zugriff auf die CA
|
|
CA_TARGET=2222 # Port für SSH-Zugriff auf Ziel-VM
|
|
REMOTE_SIGN_SCRIPT="/home/alf/remote_sign.sh"
|
|
TARGET_HOST="100.87.87.80" # Zielsystem (Rechner 2)
|
|
SSH_USER="alf" # Ziel-Login-Benutzer
|
|
KEY_DIR="./temp_keys"
|
|
KEY_NAME="temp_user_key"
|
|
VALIDITY=300 # 5 Minuten
|
|
|
|
mkdir -p "$KEY_DIR"
|
|
cd "$KEY_DIR"
|
|
|
|
echo -e "${YELLOW}[*] Prüfe auf vorhandene temporäre Schlüssel...${NC}"
|
|
if [[ -f "$KEY_NAME" || -f "${KEY_NAME}.pub" || -f "${KEY_NAME}-cert.pub" ]]; then
|
|
echo -e "${YELLOW}[!] Vorherige temporäre Schlüssel werden gelöscht...${NC}"
|
|
rm -f "$KEY_NAME" "$KEY_NAME.pub" "$KEY_NAME-cert.pub"
|
|
fi
|
|
|
|
echo -e "${YELLOW}[*] Generiere temporären SSH-Key...${NC}"
|
|
ssh-keygen -f "$KEY_NAME" -N "" -C "$SSH_USER@temp" > /dev/null
|
|
|
|
echo -e "${YELLOW}[*] Sende Public Key zur CA (${CA_HOST})...${NC}"
|
|
scp -P "$CA_PORT" "${KEY_NAME}.pub" "${CA_USER}@${CA_HOST}:/tmp/" || {
|
|
echo -e "${RED}[!] Fehler beim Senden des Public Keys zur CA${NC}"
|
|
exit 1
|
|
}
|
|
|
|
echo -e "${YELLOW}[*] Fordere Signatur von CA an...${NC}"
|
|
ssh -p "$CA_PORT" "${CA_USER}@${CA_HOST}" \
|
|
"$REMOTE_SIGN_SCRIPT /tmp/${KEY_NAME}.pub $SSH_USER $VALIDITY" || {
|
|
echo -e "${RED}[!] Fehler bei der Signierung durch die CA${NC}"
|
|
exit 1
|
|
}
|
|
|
|
echo -e "${YELLOW}[*] Lade signiertes Zertifikat von CA...${NC}"
|
|
scp -P "$CA_PORT" "${CA_USER}@${CA_HOST}:/tmp/${KEY_NAME}-cert.pub" . || {
|
|
echo -e "${RED}[!] Fehler beim Abrufen des Zertifikats von der CA${NC}"
|
|
exit 1
|
|
}
|
|
|
|
echo -e "${GREEN}[✓] Zertifikat erfolgreich erhalten${NC}"
|
|
echo -e "${YELLOW}[*] Starte SSH-Verbindung zum Zielsystem (${TARGET_HOST}) über Port ${CA_TARGET}...${NC}"
|
|
ssh -p "$CA_TARGET" -i "$KEY_NAME" "$SSH_USER@$TARGET_HOST"
|