diff --git a/pkg/library/ssh/event.go b/pkg/library/ssh/event.go index 7ebdca1e4..0160c9177 100644 --- a/pkg/library/ssh/event.go +++ b/pkg/library/ssh/event.go @@ -22,11 +22,14 @@ import ( ) const commandLine = `SSH_ENV_PATH=$HOME/ssh-environment \ -&& if [ -f /etc/ssh/passphrase ] && command -v ssh-add >/dev/null; \ -then ssh-agent | sed 's/^echo/#echo/' > $SSH_ENV_PATH \ -&& chmod 600 $SSH_ENV_PATH && source $SSH_ENV_PATH \ -&& ssh-add /etc/ssh/dwo_ssh_key < /etc/ssh/passphrase \ -&& if [ -f $HOME/.bashrc ] && [ -w $HOME/.bashrc ]; then echo "source ${SSH_ENV_PATH}" >> $HOME/.bashrc; fi; fi` +&& if [ -f /etc/ssh/passphrase ] && [ -w $HOME ] && command -v ssh-add >/dev/null; then\ + ssh-agent | sed 's/^echo/#echo/' > $SSH_ENV_PATH \ + && chmod 600 $SSH_ENV_PATH \ + && source $SSH_ENV_PATH \ + && if timeout 3 ssh-add /etc/ssh/dwo_ssh_key < /etc/ssh/passphrase && [ -f $HOME/.bashrc ] && [ -w $HOME/.bashrc ]; then \ + echo "source ${SSH_ENV_PATH}" >> $HOME/.bashrc; \ + fi; \ +fi` // AddSshAgentPostStartEvent Start ssh-agent and add the default ssh key to it, if the ssh key has a passphrase. // Initialise the ssh-agent session env variables in the user .bashrc file.