o que é 'ssh-agent bin / bash' e porque eu tenho que 'ssh-add' toda vez

3

Eu tenho que executar os seguintes comandos toda vez que eu reiniciar:

ssh-agent /bin/bash
ssh-add ~/.ssh/key_rsa

A primeira questão é por que /bin/bash é necessário e para que é usado?

Em segundo lugar, tudo bem. Eu executo esses comandos toda vez que reiniciar, ou devo colocar isso em .bashrc ou em algum lugar, então eu não tenho que ssh-add everytime.

Note que eu uso screen e cada aba da tela é diferente e eu tenho que executar esses comandos para cada aba da tela.

Editar:

Por exemplo, quando preciso empurrar para o github, preciso fazer ssh-add ~/.ssh/github_rsa , mas isso não funciona, a menos que eu faça ssh-agent /bin/bash primeiro.

Isso pode estar relacionado a screen porque ssh-agent não funciona, e o ssh-agent já está em execução, mas eu tenho que fazer ssh-agent /bin/bash .

    
por mattheew 02.10.2014 / 10:11

2 respostas

2

ssh-agent é um daemon que armazena em cache a chave ssh descriptografada na memória quando você usa ssh-add para não precisar digitar a senha para descriptografá-la sempre que ssh tentar usá-la para autenticação. Estar em cache na memória significa que da próxima vez em que ssh-agent for iniciado, a chave deve ser descriptografada e adicionada ao agente novamente, e é por isso que você precisa ssh-add novamente.

A parte /bin/bash não é realmente necessária. Normalmente, quando você inicia ssh-agent , ele imprime algumas variáveis de ambiente para stdout que devem ser eval ed, de forma que ssh saiba onde está o ssh-agent socket. Se, em vez disso, você der o comando ssh-agent a quando for iniciado, ele executará esse comando com as variáveis de ambiente definidas.

Isso significa que a instância do bash que você está usando depois de executar o comando é uma sub-inicial do que você estava usando antes. O problema de adicionar isso ao seu .bashrc é que o novo shell ssh-agent iniciará executando ssh-agent novamente, causando um loop recursivo, que você não deseja. Em vez disso, convém começar com ssh-agent no seu .bash_profile e avaliar a saída de iniciar um subshell e, em seguida, usar ssh-add manualmente, uma vez a cada vez que você efetuar login.

Outra opção seria usar a emulação de agente SSH do GNOME Keyring em vez de usar ssh-agent . Ao contrário de ssh-agent que não salva sua senha, o Chaveiro do GNOME armazena a frase secreta na chave em um chaveiro para que você não precise adicionar chaves manualmente.

    
por 02.10.2014 / 14:14
2

Eu recomendo que você use o link de link

O Keychain ajuda você a gerenciar chaves ssh e GPG de maneira conveniente e segura. Ele atua como um frontend para ssh-agent e ssh-add, mas permite que você tenha facilmente um processo de agente ssh de longa duração por sistema, em vez da norma de um agente ssh por sessão de login.

Primeiramente você instalaria de acordo com sua distribuição para debian / ubuntu

apt-get install keychain

Em seguida, adicione o seguinte ao arquivo ~ / .bashrc:

eval 'keychain --eval id_rsa'
    
por 02.10.2014 / 14:27