Eu tenho uma chave privada protegida com uma senha para acessar um servidor via SSH.
Eu tenho 2 máquinas linux (ubuntu 10.04) e o comportamento do comando ssh-add é diferente em ambos.
Em uma máquina, quando eu uso "ssh-add .ssh / identity" e digito minha senha, a chave é adicionada permanentemente, ou seja, toda vez que eu desligo o computador e faço o login novamente, a chave já está adicionada.
Na outra, tenho que adicionar a chave toda vez que faço login.
Tanto quanto me lembro, fiz o mesmo em ambos. A única diferença é que a chave foi criada na que foi adicionada permanentemente.
Alguém sabe como adicioná-lo permanentemente à outra máquina também?
Respostas:
Uma solução seria forçar a manutenção permanente dos arquivos principais, adicionando-os ao seu
~/.ssh/config
arquivo:Se você não possui um arquivo 'config' no diretório ~ / .ssh, deve criar um. Ele não precisa de direitos de root, então simplesmente:
... e insira as linhas acima conforme suas necessidades.
Para que isso funcione as necessidades de arquivo de ter chmod 600. Você pode usar o comando
chmod 600 ~/.ssh/config
.Se você quiser que todos os usuários do computador usem a chave, insira essas linhas
/etc/ssh/ssh_config
e a chave em uma pasta acessível a todos.Além disso, se você quiser definir a chave específica para um host, faça o seguinte em ~ / .ssh / config:
Isso tem a vantagem quando você tem muitas identidades de que um servidor não o rejeita porque você tentou as identidades erradas primeiro. Somente a identidade específica será tentada.
fonte
chmod 600 config
ssh-add ~/.ssh/gitHubKey
, ele lembrará sua senha de chave. A solução que propus foi configurá-lo permanentemente durante as reinicializações.Isso não respondeu o mesmo problema para mim no Mac OS X Lion. Acabei adicionando:
Para o meu .zshrc (mas .profile também ficaria bem), o que parece ter corrigido.
(Como sugerido aqui: http://geek.michaelgrace.org/2011/09/permanently-add-ssh-key-ssh-add/ )
fonte
ForwardAgent yes
à minha.ssh/config
) resolveu esse problema de maneira fantástica. Como se vê, pode ser apenasssh-add &>/dev/null
o comportamento padrão dessh-add
adicionar as chaves encontradas na sua.ssh
pasta.-K
adiciona chaves ao chaveiro do OS X, que as GUIs do OS X usam para se autenticar em servidores estrangeiros. O pôster no Q está se conectando através de um túnel SSH, mas ainda está se conectando a um servidor remoto. A - [SSH Tunnel] -> B O caso em que estou é que estou em um servidor remoto, mas quero que a autenticação seja contra credenciais no meu sistema doméstico. A <- [Auth] - B - [Connect] -> C Então-K
, na verdade, não ajuda, mas é uma ótima solução para os outros P.Resolvi esse problema no Mac OSX (10.10) usando a opção -K para ssh-add:
Para o macOS 10.12 e versões posteriores, é necessário editar adicionalmente sua configuração ssh, conforme descrito aqui: https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
fonte
man ssh-add
macOS High Sierra,ssh-add -K
ele salvará a senha no chaveiro e, após a reinicialização, basta usarssh-add -A
, o que não precisa que você insira sua senha.Basta adicionar o chaveiro, conforme mencionado nas Dicas rápidas do Ubuntu https://help.ubuntu.com/community/QuickTips
o que
Em vez de iniciar constantemente o ssh-agent e o ssh-add, é possível usar o chaveiro para gerenciar suas chaves ssh. Para instalar o chaveiro, basta clicar aqui ou usar o Synaptic para fazer o trabalho ou o apt-get na linha de comando.
Linha de comando
Outra maneira de instalar o arquivo é abrir o terminal (Aplicativo-> Acessórios-> Terminal) e digite:
Editar arquivo
Você deve adicionar as seguintes linhas ao seu $ {HOME} /. Bashrc ou /etc/bash.bashrc:
fonte
.
é um pseudônimo parasource
Tentei a solução do @ Aaron e não funcionou muito para mim, porque adicionava minhas chaves novamente toda vez que eu abria uma nova guia no meu terminal. Então eu o modifiquei um pouco (observe que a maioria das minhas chaves também é protegida por senha, então não posso simplesmente enviar a saída para / dev / null):
O que isso faz é que ele verifique a saída de
ssh-add -l
(que lista todas as chaves que foram adicionadas) para uma chave específica e, se não a encontrar, a adicionarássh-add
.Agora, na primeira vez em que abro meu terminal, as senhas das minhas chaves privadas são solicitadas e não são solicitadas novamente até que eu reinicie (ou saia - não verifiquei) meu computador.
Como tenho um monte de chaves, guardo a saída de
ssh-add -l
uma variável para melhorar o desempenho (pelo menos acho que melhora o desempenho :))PS: Estou no Linux e esse código foi para o meu
~/.bashrc
arquivo - se você estiver no Mac OS X, presumo que você deve adicioná-lo.zshrc
ou.profile
EDIT: Como apontado por @Aaron nos comentários, o
.zshrc
arquivo é usado nozsh
shell - portanto, se você não estiver usando isso (se não tiver certeza, provavelmentebash
usará), esse código deve vá para o seu.bashrc
arquivo.fonte
.zshrc
é para ozsh
shell, que eu uso em vez debash
. Se você estiver usando obash
Mac OS X (o padrão), ele também estará.bashrc
lá.ssh-add -l
código de retorno, vocêecho $?
pode decidir se deseja adicionar a chave ou não. Eu sou minha máquina linux com bash, ossh-add -l
não irá gerar o nome do arquivo chave. O código de retorno sempre funciona.No meu caso, a solução foi:
Como mencionado nos comentários acima pelo generalopinion
Não há necessidade de tocar no conteúdo do arquivo de configuração.
fonte
~/.ssh/config
arquivo é de leitura / gravação para o usuário, e não é gravável por outros.Eu tive o mesmo problema no Ubuntu 16.04: algumas chaves foram adicionadas permanentemente, para outras eu tive que executar
ssh-add
em todas as sessões. Eu descobri que as chaves que foram adicionadas permanentemente tinham tanto a chave pública quanto a privada,~/.ssh
e as chaves que foram esquecidas em todas as sessões tinham apenas chaves privadas no~/.ssh
diretório Então solução é simples: você deve copiar tanto chave privada e pública para~/.ssh
antes de executarssh-add
.PS: Pelo que entendi no wiki do Gnome, meu método funciona graças à ferramenta gnome-keyring, que faz parte do ambiente de área de trabalho do Gnome. Portanto, meu método provavelmente só funcionará se você usar o Gnome ou o DE baseado em Gnome.
fonte
Adicionar as seguintes linhas em "~ / .bashrc" resolveu o problema para mim. Estou usando o Ubuntu 14.04 desktop.
fonte
No Ubuntu 14.04 (talvez mais cedo, talvez ainda), você nem precisa do console:
seahorse
ou inicie o que encontrar pesquisando "chave"ssh
irá capturar a identidade (ou seja, chave) através do agentessh
com-A
ou faça dele o padrãofonte
Eu corro o Ubuntu usando duas chaves id_rsa. (um pessoal para o trabalho). O ssh-add lembraria uma chave (pessoal) e esqueceria a empresa uma vez.
Ao verificar a diferença entre os dois, vi que minha chave pessoal tinha 400 direitos, enquanto a empresa tinha 600 direitos. (tinha u + w). A remoção da gravação do usuário diretamente da chave da empresa (uw ou definida como 400) corrigiu meu problema. O ssh-add agora lembra as duas chaves.
fonte
Isso funcionou para mim.
fonte
muito simples ^ _ ^ dois passos
1.yum instalar chaveiro
2. adicione o código abaixo a .bash_profile
fonte
Para aqueles que usam Fish shell, você pode usar a seguinte função e chamá-la em
~/.config/fish/config.fish
ou em um arquivo de configuração separado em~/.config/fish/conf.d/loadsshkeys.fish
. Ele carregará todas as chaves que começam com id_rsa no diretóriossh-agent
.Se você deseja
ssh-agent
iniciar automaticamente quando abrir um terminal, use o tuvistavie / fish-ssh-agent para fazer isso.fonte