Eu tenho duas VMs do openSUSE 13.1. Ambos foram configurados para executar ssh-agent e ssh-add quando o KDE é carregado. Isso é feito por meio do arquivo .bash_profile
usando o seguinte código:
# Load SSH agent
SSH_DIR="${HOME}/.ssh"
SSH_ENV="${SSH_DIR}/environment"
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
for key in ${SSH_DIR}/{id_rsa}
do
ssh-add ${key}
done
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Isso funciona em uma das VMs. Eu sou solicitado a digitar a senha para a minha chave SSH quando o KDE for iniciado (mas antes que ela esteja totalmente carregada). A execução de ps
indica apenas uma instância singular de ssh-agent
.
Na outra VM, no entanto, isso não funciona. Eu devo ter mudado alguma coisa sem pensar porque funcionou em determinado momento. Eu não recebo a solicitação da minha senha de chave SSH. No entanto, a execução de ps
indica algumas instâncias de ssh-agent
em execução e aparentemente de diferentes pontos de iniciação:
1231 ? S 0:00 /usr/bin/dbus-launch --sh-syntax --close-stderr --exit-with-session /usr/bin/ssh-agent /etc/X11/xinit/xinitrc
1233 ? Ss 0:00 /usr/bin/ssh-agent /etc/X11/xinit/xinitrc
Eu estou supondo que, como o ssh-agent já está em execução, a instância tentada por meio do arquivo .bash_profile
falha. Eu sei que se eu executar echo ${SSH_ENV}
no sistema em que funciona, obtenho /home/msnyder/.ssh/environment
. Fazer o mesmo na VM que não está funcionando não retorna nada.
No passado, eu rodava ssh-askpass através do diretório Autostart do KDE. Eu optei por um método mais orientado para shell, apesar do que estou fazendo (e tentando fazer) agora.
Eu não sei o que está causando essa diferença. As entradas .bash_profile
são idênticas. Alguém tem uma ideia?
EDIT: kdm
parece estar lançando ssh-agent
. Eu não consigo descobrir o porquê.
root 751 0.0 0.0 24612 308 ? Ss 16:42 0:00 /usr/bin/kdm
root 784 1.7 10.7 282468 110040 tty7 Ssl+ 16:42 0:29 \_ /usr/bin/Xorg -br :0 vt7 -nolisten tcp -auth /var/lib/kdm/AuthFiles/A:0-eGk8Rb
root 1086 0.0 0.0 78344 556 ? S 16:42 0:00 \_ -:0
msnyder 1110 0.0 0.0 13092 304 ? Ss 16:42 0:00 \_ /bin/sh /usr/bin/startkde
msnyder 1233 0.0 0.0 12564 76 ? Ss 16:42 0:00 \_ /usr/bin/ssh-agent /etc/X11/xinit/xinitrc
Tanto quanto sei, não configurei KDE
/ kdm
para fazer isso.