Weiterentwicklung
This commit is contained in:
55
client/get_cert_and_connect.sh
Normal file
55
client/get_cert_and_connect.sh
Normal file
@ -0,0 +1,55 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user