#!/bin/bash # SSH Agent initialization for ansible automation SSH_ENV="$HOME/.ssh/agent-env" ANSIBLE_KEY="/opt/ansible/secrets/ssh/ansible" function start_agent { echo "Initializing new SSH agent..." ssh-agent -s | sed 's/^echo/#echo/' > "${SSH_ENV}" chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null # Add ansible key if [ -f "$ANSIBLE_KEY" ]; then cat > /tmp/ansible-askpass.sh << 'ASKPASS' #!/bin/bash echo "PenguinsJuggleFlamingPineapples42" ASKPASS chmod +x /tmp/ansible-askpass.sh SSH_ASKPASS=/tmp/ansible-askpass.sh DISPLAY=:0 setsid -w ssh-add "$ANSIBLE_KEY" < /dev/null 2>/dev/null rm -f /tmp/ansible-askpass.sh fi } # Source SSH agent settings if exists if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent } else start_agent fi # Ensure ansible key is loaded if ! ssh-add -l 2>/dev/null | grep -q "ansible@mymx.me"; then if [ -f "$ANSIBLE_KEY" ]; then cat > /tmp/ansible-askpass.sh << 'ASKPASS' #!/bin/bash echo "PenguinsJuggleFlamingPineapples42" ASKPASS chmod +x /tmp/ansible-askpass.sh SSH_ASKPASS=/tmp/ansible-askpass.sh DISPLAY=:0 setsid -w ssh-add "$ANSIBLE_KEY" < /dev/null 2>/dev/null rm -f /tmp/ansible-askpass.sh fi fi