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

9

Crie uma chave ssh:

$ ssh-keygen -t rsa –P ""

Mover a chave para chave autorizada:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory
    
por sknit 15.05.2014 / 21:16

4 respostas

13

bash: /home/user/.ssh/authorized_keys: No such file or directory

Um elemento do caminho /home/user/.ssh/ não existe; o shell ( bash ) verifica o redirecionamento ( >> ) antes de executar o comando ( cat ). Se /home/user existir e você tentar isto:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

Você agora terá:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

Como esse arquivo não pode estar nesse lugar, se /home/user/.ssh/ não existia para começar.

Você está seguindo algumas instruções tendo possivelmente ignorado alguns bits. Para criar o diretório:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

No entanto, id_rsa.pub não estará lá. Será onde quer que você tenha executado o comando ssh-keygen em primeiro lugar.

    
por 15.05.2014 / 22:00
6

Certifique-se de ter feito login como o usuário para o qual deseja criar a chave ssh (ou esteja preparado para modificar os caminhos no comando para o diretório home correto).

Em seguida, basta criar o diretório:

mkdir ~/.ssh

Crie o arquivo usando o comando cat que você listou acima. Então não esqueça de definir as permissões corretamente:

chmod 400 ~/.ssh/authorized_keys

Você pode querer ter certeza de que o diretório .ssh também possui permissões apropriadas.

    
por 15.05.2014 / 21:57
5

Se possível, sempre incentivo as pessoas a usarem a ferramenta de linha de comando ssh-copy-id .

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

Se você quiser apenas copiar sua chave pública SSH padrão para um servidor remoto, basta executar o seguinte comando:

$ ssh-copy-id user@remoteserver

Eu mostro um exemplo completo real de como usar essa ferramenta neste Q & A intitulado: Não é possível compartilhar uma conexão ssh com o rsync .

    
por 15.05.2014 / 22:47
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 04.09.2015 / 20:05