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?

Raji AC
fonte

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

donden1
fonte
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
Michael Krelin - hacker
fonte
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 [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

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

usuá[email protected]

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

Faisal Sarfraz
fonte
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 [email protected]

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

Muito melhor do que manualmente!

tkarls
fonte
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
i_tanova
fonte