Use ssh-add automaticamente

0

Então, no Ubuntu, sempre que eu SSH para uma máquina, eu recebo um aviso para desbloquear minha chave privada e até que eu saia da minha sessão do sistema operacional, posso SSH para quantas máquinas eu quiser usando autenticação de chave e não ter que digitar nada . No Debian, eu recebo uma solicitação de senha toda vez que faço alguma coisa. Se eu executar "ssh-add", então não terei que inserir uma senha novamente enquanto continuo usando essa mesma janela de terminal. Se eu abrir um novo terminal, precisarei rodar o ssh-add novamente. Alguém tem alguma dica sobre Como obter o Debian 7.1 para copiar a funcionalidade que o Ubuntu oferece aqui?

    
por Peter 05.11.2013 / 13:48

1 resposta

1

O segredo é que existe um agente ssh rodando em segundo plano e o Ubuntu salva configurações para esse processo em algum lugar. Então, para fazer as coisas acontecerem, você precisa de a) iniciar o ssh-agent em segundo plano eb) salvar o PID desse processo em algum lugar, para que você possa fornecer o valor para o PId para todos os shells subsequentes.

Quando o ssh-agent é iniciado, ele emitirá seu PID e algumas outras informações que você deseja fornecer posteriormente ao gerar novos shells. Algo como o seguinte no seu ~/.bashrc pode funcionar:

setf="$HOME/.ssh_agent_settings"          # filename for storing PID etc.
[ -r $setf ] && . $setf > /dev/null 2>1   # source PID etc. if file exists
kill -0 $SSH_AGENT_PID > /dev/null 2>&1   # kill -0 will fail if process doesn't exist
[ "$?" -eq 0 ] && exit                    # kill returns 0 on success
ssh-agent > $setf                         # process doesn't exist, so we create one
. $setf > /dev/null 2>&1                  # source PID of the newly created process

Isso iniciará o ssh-agent na inicialização do shell, caso ainda não esteja em execução, ou apenas as variáveis PID e AUTH_SOCK do agente ssh de ~/.ssh_agent_settings .

    
por 05.11.2013 / 14:04

Tags