Sådan holder du ssh-agent kørende og husker nøgler i zsh - En guide

Hvordan kan ssh-agent holdes kørende, så det ikke er nødvendigt at starte en ny hver gang, og hvordan kan de tilføjede nøgler huskes, så de ikke skal tilføjes hver gang, når der bruges zsh?

For at holde ssh-agent kørende og huske tilføjede nøgler i zsh, skal du tilføje specifikke linjer til din ~/.zshrc fil, starte ssh-agent automatisk, gemme miljøvariabler, tilføje SSH nøgler automatisk og genindlæse konfigurationsfilen.

Sådan holder du ssh-agent kørende og husker tilføjede nøgler i zsh

For at sikre, at ssh-agent forbliver kørende, og at de tilføjede nøgler huskes, når du bruger zsh, kan du følge disse trin:

1. Start ssh-agent automatisk

Tilføj følgende linjer til din ~/.zshrc fil for at starte ssh-agent automatisk, hvis den ikke allerede kører:


if [ -z "$SSH_AUTH_SOCK" ]; then
    eval "$(ssh-agent -s)"
fi

2. Gem ssh-agent miljøvariabler

For at gemme ssh-agent miljøvariablerne og genbruge dem i fremtidige terminalsessioner, kan du tilføje følgende linjer til din ~/.zshrc fil:


export SSH_ENV="$HOME/.ssh/environment"

function start_agent {
    echo "Initializing new SSH agent..."
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
}

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

3. Tilføj dine SSH nøgler automatisk

For at tilføje dine SSH nøgler automatisk til ssh-agent, kan du tilføje følgende linjer til din ~/.zshrc fil:


ssh-add -l &>/dev/null
if [ "$?" == 2 ]; then
    ssh-add
fi

4. Genindlæs zsh konfigurationsfil

Efter at have foretaget ovenstående ændringer, skal du genindlæse din ~/.zshrc fil for at anvende ændringerne:


source ~/.zshrc

Ved at følge disse trin vil ssh-agent blive startet automatisk, og dine SSH nøgler vil blive tilføjet automatisk, hvilket sparer dig tid og besvær ved at skulle gøre det manuelt hver gang.