Como obter minha senha do ssh lembrada durante uma sessão do Ubuntu?

2

Se eu abrir um terminal gnome e me conectar a um servidor através de SSH, ser-me-á solicitada uma senha por um prompt de texto no meu terminal em vez de uma GUI e, pior, essa frase secreta não será armazenada na memória durante a duração da minha sessão do Ubuntu.

Pelo contrário, eu uso chaves PGP com o Enigmail no Thunderbird, e eu tenho que inserir minhas senhas apenas uma vez por sessão, usando uma GUI.

Parece que tenho 3 agentes instalados e em execução: seahorse-daemon, gpg-agent e ssh-agent, e eles não parecem funcionar bem. Eu tenho um chaveiro gnome correndo também. Eu não entendo o que cada um desses programas deve fazer.

O ssh-agent é executado pelo meu sistema com "/ usr / bin / gpg-agent" como argumento de primeiro comando, e eu não entendo o que isso significa.

Como posso configurar qual agente usar para chaves ssh?

    
por YS1 29.01.2013 / 21:51

3 respostas

2

Eu não uso o utilitário GUI em "configurações" - > "senhas e chaves"

Eu instalei o keychain.

% bl0ck_qu0te%

Se você estiver executando o bash, precisará adicionar alguns comandos ao seu .bash_profile Se você não tiver um .bash_profile, crie um em sua pasta pessoal. Adicione estas linhas:

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

No início de um dia de trabalho, vou fazer o login. Quando eu abro um terminal, serei solicitado uma vez pela minha senha. Para todos os outros novos terminais e conexões, não serei solicitado novamente a minha frase-senha.

    
por walpha 20.02.2014 / 06:36
1

Execute ssh-add em um terminal e digite sua senha quando solicitado. Se isso funcionar, todos os acessos subsequentes à sua chave ssh devem funcionar sem qualquer aviso, em todos os terminais e aplicativos executados na mesma sessão X.

    
por Robie Basak 29.01.2013 / 21:55
0

Eu fiz muitos testes e pesquisas para descobrir que a maioria dos documentos está desatualizada, eis uma maneira simples e eficaz de fazê-lo funcionar.

Na parte inferior do seu arquivo .bashrc, basta colocar isso em:

# use a tty for gpg
# solves error: "gpg: signing failed: Inappropriate ioctl for device"
GPG_TTY=$(tty)
export GPG_TTY
# Start the gpg-agent if not already running
if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then
    gpg-connect-agent /bye >/dev/null 2>&1
    gpg-connect-agent updatestartuptty /bye >/dev/null
fi
# Set SSH to use gpg-agent
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
    export SSH_AUTH_SOCK="${HOME}/.gnupg/S.gpg-agent.ssh"
fi
# add alias for ssh to update the tty
alias ssh="gpg-connect-agent updatestartuptty /bye >/dev/null; ssh"

Espero que isso poupe a dor de cabeça de reviver a documentação antiga.

    
por Pete 09.04.2018 / 17:48