bash: /home/user/.ssh/authorized_keys: Tidak ada file atau direktori seperti itu

11

Buat kunci ssh:

$ ssh-keygen -t rsa P ""

Memindahkan kunci ke kunci yang diotorisasi:

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

bash: /home/user/.ssh/authorized_keys: No such file or directory
sknit
sumber
Pertanyaan yang sama, mengapa Anda perlu menambahkan kunci ke host Anda sendiri?
Braiam
@Braiam Saya sudah melakukan ini ketika direktori home saya ada di drive jaringan. Ini memungkinkan saya untuk ssh ke mesin apa pun yang memasang drive ini. Jadi saya tidak menghisap host saya sendiri.
FDinoff

Jawaban:

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

Elemen jalan /home/user/.ssh/tidak ada; shell ( bash) memeriksa pengalihan ( >>) sebelum menjalankan perintah ( cat). Jika /home/usermemang ada dan Anda coba ini:

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

Anda sekarang akan mendapatkan:

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

Karena file itu tidak dapat berada di tempat itu, jika /home/user/.ssh/tidak ada untuk memulai.

Anda mengikuti beberapa instruksi yang mungkin melewatkan beberapa bit. Untuk membuat direktori:

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

Namun, id_rsa.pubtidak akan ada di sana. Ini akan berada di mana pun Anda menjalankan ssh-keygenperintah di tempat pertama.

goldilocks
sumber
6

Pastikan Anda masuk sebagai pengguna yang ingin Anda buat kunci ssh untuk pertama kali (atau bersiaplah untuk memodifikasi jalur dalam perintah ke direktori home yang benar).

Maka cukup buat direktori:

mkdir ~/.ssh

Buat file menggunakan catperintah yang Anda daftarkan di atas. Maka jangan lupa untuk mengatur izin dengan benar:

chmod 400 ~/.ssh/authorized_keys

Anda mungkin ingin memastikan bahwa direktori .ssh juga memiliki izin yang sesuai.

111 ---
sumber
1
Seperti yang tersirat dari komentar terakhir Anda, ya saya merasa Anda perluchmod 700 ~/.ssh
KCD
6

Jika memungkinkan saya selalu mendorong orang untuk menggunakan alat commandline ssh-copy-id.

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

Jika Anda hanya ingin menyalin kunci publik SSH default Anda ke server jarak jauh, Anda cukup menjalankan perintah berikut:

$ ssh-copy-id user@remoteserver

Saya menunjukkan contoh lengkap aktual tentang bagaimana menggunakan alat ini dalam T&J ini berjudul: Tidak dapat berbagi koneksi ssh dengan rsync .

slm
sumber
0

Ini juga bisa gagal jika, saat membuat kunci dengan ssh-keygen, Anda memberinya nama file. Saya memasukkan beberapa nama my-ssh-file-name, dan itu menulis kunci /Users/MyUserNamebukan .sshfolder. Jika Anda membiarkan nama file kosong, itu akan menulis .sshseperti yang diharapkan.

Francisco Corrales Morales
sumber
atau tentu saja Anda dapat menentukan untuk menulis kunci khusus ke folder .ssh secara langsung:-f ~/.ssh/custom-key-name
parlemen