bash: /home/user/.ssh/authorized_keys: Nenhum arquivo ou diretório

14

Crie uma chave ssh:
Comando:

ssh-keygen -t rsa –P ""

Mover a chave para chave autorizada:
Comando:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
    
por user282060 15.05.2014 / 21:50

5 respostas

39

Você precisa criar o diretório .ssh e o arquivo authorized_keys pela primeira vez.

  1. Crie o diretório .ssh :

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

    chmod 700 ~/.ssh
    
  3. Crie o arquivo authorized_keys :

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

    chmod 600 ~/.ssh/authorized_keys
    

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

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

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

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

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

ssh-copy-id user@host

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

    
por Louis Matthijssen 15.05.2014 / 22:14
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 cole-a em uma nova linha na janela do editor. Verifique se ocupa uma única linha e salve.

chmod 600 ~/.ssh/authorized_keys
    
por KalenGi 07.01.2016 / 01:29
0

tente

 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.

    
por DGA 15.05.2014 / 22:13
0

Isso também pode falhar se, ao criar a chave com ssh-keygen , você fornecer um nome de arquivo. Eu digitei algum nome my-ssh-file-name e ele escreveu a chave para /Users/MyUserName em vez da pasta .ssh . Se você deixar o nome do arquivo em branco, ele gravará em .ssh conforme o esperado.

    
por Francisco Corrales Morales 04.09.2015 / 20:05
0

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

ssh username@host

então 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

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

Espero que isso ajude alguém.

    
por Shivam Sharma 28.07.2017 / 10:33