Como adicionar a chave RSA ao arquivo authorized_keys?


93

Eu criei uma chave pública RSA e quero adicioná-la ao authorized_keysarquivo, mas não existe esse arquivo em minha máquina Ubuntu 11.10.

Como posso adicionar a chave a authorized_keys?

Respostas:


110

Certifique-se de que, ao executar a solução de Michael Krelin, faça o seguinte

cat <your_public_key_file> >> ~/.ssh/authorized_keys

Observe o dobro, >sem o dobro, >o conteúdo existente de authorized_keys será sobrescrito (nukado!) E isso pode não ser desejável


Você precisa incluir como catar corretamente as informações da chave pública; simplesmente copiar e colar não vai adiantar. Por exemplo:
einarc

4
Você pode explicar por que copiar / colar não funciona? Estou sinceramente curioso.
mcsilvio

Lembre-se, se estiver executando o systemd para reiniciar o serviço ssh, ou não absorverá as novas chaves sudo systemctl restart sshde não funcionará
Kes

52
mkdir -p ~/.ssh/

Para substituir authorized_keys

cat your_key > ~/.ssh/authorized_keys

Para anexar ao final de authorized_keys

cat your_key >> ~/.ssh/authorized_keys

Eu gerei a chave no lado do cliente e copiei essa chave para a máquina do servidor, mas usando o comando ssh 192.168.2.7 ele não permite o login.
Raji AC

Não permite login dizendo o quê?
Michael Krelin - hacker de

ao executar este comando, ele pede a senha do server.i quero um login sem senha
Raji AC

O id (parte pub) está em ~ / .ssh / authorized_keys no remoto? O id (parte não pub) é usado pelo ssh ao tentar fazer o login? Você pode tentar especificá-lo explicitamente com -i. Além disso, você pode tentar ssh -ve verificar as permissões de suas authorized_keys no remoto. E verifique os registros lá.
Michael Krelin - hacker de

Podemos verificar se a chave já foi adicionada? Como é feito por ssh-copy-id para sistema remoto
Dmitriusan

33

Eu sei que estou respondendo tarde demais, mas para qualquer outra pessoa que precise disso, execute o seguinte comando em sua máquina local

cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

isso funcionou perfeitamente bem. Tudo que você precisa fazer é apenas substituir

usuário@192.168.1.1

com o seu próprio usuário para aquele host específico


33

Já existe um comando no pacote ssh para fazer isso automaticamente para você. Ou seja, faça login em um host remoto e adicione a chave pública ao arquivo authorized_keys desse computador.

ssh-copy-id -i /path/to/key/file user@host.com

Se a chave que você está instalando é ~/.ssh/id_rsa, você pode até mesmo abandonar o -isinalizador completamente.

Muito melhor do que manualmente!


2
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.