bash: /home/user/.ssh/authorized_keys: Esse arquivo ou diretório não existe

30

Crie uma chave ssh:
Comando:

ssh-keygen -t rsa –P ""

Movendo a chave para a chave autorizada:
Comando:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
user282060
fonte
1
~/.ssh/authorized_keyssão chaves de outros computadores aos quais você se conectou / confia, e não sua própria chave.
Saiarcot895 15/05
Alguns aplicativos requerem ssh sem senha na própria máquina.
Nehal J Wani
Não poste a mesma pergunta em vários sites da rede Stack Exchange.
Terdon #
Por que você precisa confiar na chave que possui? Exatamente o que você está tentando fazer?
Braiam 16/05

Respostas:

74

Você precisa criar o .sshdiretório e o authorized_keysarquivo pela primeira vez.

  1. Crie o .sshdiretório:

    mkdir ~/.ssh
    
  2. Defina as permissões corretas:

    chmod 700 ~/.ssh
    
  3. Crie o authorized_keysarquivo:

    touch ~/.ssh/authorized_keys
    
  4. Defina as permissões corretas:

    chmod 600 ~/.ssh/authorized_keys
    

As permissões são importantes! Não funcionará sem as permissões corretas!

Agora você pode adicionar a chave pública ao authorized_keysarquivo:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Você precisa adicionar a chave pública do seu computador ao authorized_keysarquivo do computador que deseja acessar usando as Chaves SSH !


Como o Terdon mencionou, você também pode usar este comando:

ssh-copy-id user@host

Isso colocará seu id_rsa.pub(no seu ~/.sshdiretório) no authorized_keysarquivo do computador remoto , criando o .sshdiretório e o authorized_keysarquivo com as permissões corretas, se necessário.

Louis Matthijssen
fonte
5
De qualquer forma, você não quer apenas catisso, ssh-copy-idé para isso.
terdon 15/05
1
Uau, legal, eu adicionei.
Louis Matthijssen
@LouisMatthijssen Copiei as chaves do meu servidor remoto. Como posso confirmar que a chave pública foi adicionada em allowed_keys.
Aman
2

Caso você tenha recebido a chave pública em um email para instalar em um servidor remoto:

1) SSH no servidor. Eu usei o PuTTY no Windows.

2) Configure a chave:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

Tome cuidado para copiar a chave exatamente e colá-la em uma nova linha na janela do editor. Verifique se ele ocupa uma única linha e salve.

chmod 600 ~/.ssh/authorized_keys
KalenGi
fonte
2

Como não tenho reputação suficiente, estou adicionando isso aqui. Além da resposta de Louis Matthijssen, se você ainda não conseguir fazer login através do ssh como um usuário que você criou, como

ssh username@host

isso pode ser devido à ausência de permissão do proprietário que você deve adicionar à sua pasta /home/username/.ssh. Eu tive o mesmo problema e você pode dar essa permissão como:

chown -R username:username /home/username/.ssh

Provavelmente, isso pode acontecer simplesmente porque você estava criando o diretório e definindo as permissões como raiz , mas não como o nome de usuário com o qual deseja acessar o servidor.

Espero que isso ajude alguém.

Shivam Sharma
fonte
0

experimentar

 touch $HOME/.ssh/authorized_keys

para criar um arquivo vazio com os direitos desse usuário.

Este arquivo é criado quando você acessa pela primeira vez um host remoto com esse usuário.

DGA
fonte
0

Isso também pode falhar se, ao criar a chave ssh-keygen, você der um nome de arquivo a ela. Digitei um nome my-ssh-file-namee ele escreveu a chave em /Users/MyUserNamevez da .sshpasta. Se você deixar o nome do arquivo em branco, ele gravará .sshconforme o esperado.

Francisco Corrales Morales
fonte