bash: /home/user/.ssh/authorized_keys: Brak takiego pliku lub katalogu

30

Utwórz klucz ssh:
Polecenie:

ssh-keygen -t rsa –P ""

Przenoszenie klucza do autoryzowanego klucza:
Polecenie:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
użytkownik 282060
źródło
1
~/.ssh/authorized_keysto klucze innych komputerów, z którymi się łączysz / którym ufasz, a nie własny klucz.
saiarcot895
Niektóre aplikacje wymagają ssh bez hasła do własnego komputera.
Nehal J Wani
Nie publikuj tego samego pytania w wielu witrynach sieci Stack Exchange.
terdon
Dlaczego musisz zaufać posiadanemu kluczowi? Dokładnie co próbujesz zrobić?
Braiam

Odpowiedzi:

74

Za pierwszym razem musisz utworzyć .sshkatalog i authorized_keysplik.

  1. Utwórz .sshkatalog:

    mkdir ~/.ssh
    
  2. Ustaw odpowiednie uprawnienia:

    chmod 700 ~/.ssh
    
  3. Utwórz authorized_keysplik:

    touch ~/.ssh/authorized_keys
    
  4. Ustaw odpowiednie uprawnienia:

    chmod 600 ~/.ssh/authorized_keys
    

Uprawnienia są ważne! Nie będzie działać bez odpowiednich uprawnień!

Teraz możesz dodać klucz publiczny do authorized_keyspliku:

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

Musisz dodać klucz publiczny komputera do authorized_keyspliku komputera, do którego chcesz uzyskać dostęp za pomocą kluczy SSH !


Jak wspomniano terdon, możesz także użyć tego polecenia:

ssh-copy-id user@host

Spowoduje to umieszczenie twojego id_rsa.pub(w twoim ~/.sshkatalogu) w authorized_keyspliku komputera zdalnego , tworząc .sshkatalog i authorized_keysplik z odpowiednimi uprawnieniami, jeśli to konieczne.

Louis Matthijssen
źródło
5
W każdym razie nie chcesz tego po prostu cat, po to ssh-copy-idjest.
terdon
1
Wow, super, dodałem to.
Louis Matthijssen
@LouisMatthijssen Skopiowałem klucze na mój zdalny serwer. Jak mogę potwierdzić, że klucz publiczny został dodany w uprawnionych kluczach?
Aman
2

W przypadku wysłania klucza publicznego w wiadomości e-mail w celu instalacji na zdalnym serwerze:

1) SSH do serwera. Użyłem PuTTY na Windowsie.

2) Ustaw klucz:

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

Należy dokładnie skopiować klucz i wkleić go w nowym wierszu w oknie edytora. Sprawdź, czy zajmuje jedną linię i zapisz.

chmod 600 ~/.ssh/authorized_keys
KalenGi
źródło
2

Ponieważ nie mam wystarczającej reputacji, dodaję to tutaj. Oprócz odpowiedzi Louisa Matthijssena, jeśli nadal nie możesz zalogować się za pośrednictwem ssh jako utworzonego użytkownika, takiego jak

ssh username@host

może to wynikać z braku uprawnień właściciela , które należy dodać do folderu /home/username/.ssh. Miałem ten sam problem i możesz wyrazić zgodę na:

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

Prawdopodobnie dzieje się tak po prostu dlatego, że tworzysz katalog i ustawiasz uprawnienia jako root , ale nie jako nazwę użytkownika którą chcesz uzyskać dostęp do serwera.

Mam nadzieję, że to komuś pomoże.

Shivam Sharma
źródło
0

próbować

 touch $HOME/.ssh/authorized_keys

aby utworzyć pusty plik z prawami tego użytkownika.

Ten plik jest tworzony, gdy po raz pierwszy uzyskujesz dostęp do zdalnego hosta z tym użytkownikiem.

DGA
źródło
0

Może się to również nie powieść, jeśli podczas tworzenia klucza ssh-keygenpodasz mu nazwę pliku. Wpisałem jakąś nazwę my-ssh-file-name, a /Users/MyUserNamezamiast tego napisałem klucz do .ssh. Jeśli nazwa pliku pozostanie pusta, zostanie zapisany .sshzgodnie z oczekiwaniami.

Francisco Corrales Morales
źródło