import_config.sh aktualisiert

This commit is contained in:
2026-05-16 13:52:23 +02:00
parent ae99f4ba46
commit 8505c4dc87
+24 -16
View File
@@ -25,18 +25,16 @@ read -p "Wähle eine Option (1-5): " OPTION < /dev/tty
# Globale Variable für den ausgewählten Key
SELECTED_KEY=""
# Neue Funktion zur interaktiven Key-Auswahl
# Funktion zur interaktiven Key-Auswahl
select_ssh_key() {
local keys=()
# Finde alle echten Private Keys im .ssh Ordner
if [ -d "$HOME/.ssh" ]; then
while IFS= read -r line; do
keys+=("$line")
done < <(grep -rl "PRIVATE KEY" "$HOME/.ssh" 2>/dev/null)
fi
# Fallback, falls keine Keys gefunden wurden
if [ ${#keys[@]} -eq 0 ]; then
echo "Keine SSH-Schlüssel automatisch gefunden."
read -p "Pfad zum SSH-Key (manuell eingeben, leer = überspringen): " SELECTED_KEY < /dev/tty
@@ -71,11 +69,9 @@ replace_identity_file() {
echo ""
echo "--- Lokale Anpassung (IdentityFile) ---"
# Aufruf der neuen Key-Auswahl-Logik
select_ssh_key
if [ -n "$SELECTED_KEY" ]; then
# Ersetzt alle vorhandenen 'IdentityFile'-Einträge durch den gewählten Pfad
sed -i "s|^[ \t]*IdentityFile.*| IdentityFile $SELECTED_KEY|" "$target_file"
echo "Erfolg: Alle IdentityFile-Einträge wurden für diesen PC auf '$SELECTED_KEY' geändert."
else
@@ -95,20 +91,28 @@ case $OPTION in
;;
2)
echo "--- Entschlüsselte Config ---"
curl -sL "$REMOTE_ENC_URL" | age -d < /dev/tty
TMP_ENC=$(mktemp)
curl -sL "$REMOTE_ENC_URL" -o "$TMP_ENC"
age -d "$TMP_ENC" < /dev/tty
rm -f "$TMP_ENC"
echo "-----------------------------"
;;
3)
TMP_ENC=$(mktemp)
TMP_DEC=$(mktemp)
echo "Lade Git-Config herunter. age benötigt nun das Kennwort..."
if ! curl -sL "$REMOTE_ENC_URL" | age -d > "$TMP_DEC" 2>/dev/null < /dev/tty; then
echo "Fehler: Entschlüsselung fehlgeschlagen (falsches Passwort/Netzwerkfehler)."
rm -f "$TMP_DEC"
echo "Lade Git-Config herunter..."
curl -sL "$REMOTE_ENC_URL" -o "$TMP_ENC"
echo "age benötigt nun das Kennwort..."
if ! age -d "$TMP_ENC" > "$TMP_DEC" < /dev/tty; then
echo "Fehler: Entschlüsselung fehlgeschlagen (falsches Passwort oder Download fehlerhaft)."
rm -f "$TMP_ENC" "$TMP_DEC"
exit 1
fi
rm -f "$TMP_ENC" # Aufräumen der verschlüsselten Temp-Datei
# Aufruf der Key-Ersetzung
replace_identity_file "$TMP_DEC"
mkdir -p "$HOME/.ssh" && touch "$CONFIG_FILE"
@@ -133,16 +137,21 @@ case $OPTION in
rm -f "$TMP_DEC"
;;
4)
TMP_ENC=$(mktemp)
TMP_DEC=$(mktemp)
echo "Lade Git-Config herunter. age benötigt nun das Kennwort..."
if ! curl -sL "$REMOTE_ENC_URL" | age -d > "$TMP_DEC" 2>/dev/null < /dev/tty; then
echo "Lade Git-Config herunter..."
curl -sL "$REMOTE_ENC_URL" -o "$TMP_ENC"
echo "age benötigt nun das Kennwort..."
if ! age -d "$TMP_ENC" > "$TMP_DEC" < /dev/tty; then
echo "Fehler: Entschlüsselung fehlgeschlagen."
rm -f "$TMP_DEC"
rm -f "$TMP_ENC" "$TMP_DEC"
exit 1
fi
rm -f "$TMP_ENC"
# Aufruf der Key-Ersetzung
replace_identity_file "$TMP_DEC"
if [ -f "$CONFIG_FILE" ]; then
@@ -169,7 +178,6 @@ case $OPTION in
read -p "Port (Standard: 22 - Einfach Enter drücken): " NEW_PORT < /dev/tty
NEW_PORT=${NEW_PORT:-22}
# Integration der Key-Auswahl für neue Hosts
echo ""
echo "Wähle das IdentityFile für diesen Host:"
select_ssh_key