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

30

Buat kunci ssh:
Perintah:

ssh-keygen -t rsa –P ""

Memindahkan kunci ke kunci yang diotorisasi:
Perintah:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
pengguna282060
sumber
1
~/.ssh/authorized_keysadalah kunci dari komputer lain yang terhubung / dipercaya, bukan kunci Anda sendiri .
saiarcot895
Beberapa aplikasi memerlukan ssh tanpa kata sandi ke komputer sendiri.
Nehal J Wani
Tolong jangan posting pertanyaan yang sama di beberapa situs jaringan Stack Exchange.
terdon
Mengapa Anda perlu mempercayai kunci yang Anda miliki? Apa yang sebenarnya Anda coba lakukan?
Braiam

Jawaban:

74

Anda harus membuat .sshdirektori dan authorized_keysfile pertama kali.

  1. Buat .sshdirektori:

    mkdir ~/.ssh
    
  2. Tetapkan izin yang tepat:

    chmod 700 ~/.ssh
    
  3. Buat authorized_keysfile:

    touch ~/.ssh/authorized_keys
    
  4. Tetapkan izin yang tepat:

    chmod 600 ~/.ssh/authorized_keys
    

Izin itu penting! Ini tidak akan berfungsi tanpa izin yang tepat!

Sekarang Anda dapat menambahkan kunci publik ke authorized_keysfile:

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

Anda harus menambahkan kunci publik komputer Anda ke authorized_keysfile komputer yang ingin Anda akses menggunakan SSH Keys !


Seperti yang disebutkan terdon Anda juga bisa menggunakan perintah ini:

ssh-copy-id user@host

Ini akan menempatkan Anda id_rsa.pub(dalam ~/.sshdirektori Anda ) di authorized_keysfile komputer jarak jauh , membuat .sshdirektori dan authorized_keysfile dengan izin yang tepat jika perlu.

Louis Matthijssen
sumber
5
Bagaimanapun, Anda tidak ingin hanya catitu, itu untuk apa ssh-copy-id.
terdon
1
Wow, keren, saya sudah menambahkannya.
Louis Matthijssen
@LouisMatthijssen Saya telah menyalin kunci ke server jarak jauh saya. Bagaimana saya bisa mengonfirmasi bahwa kunci publik ditambahkan dalam otor_keys.
Aman
2

Jika Anda telah mengirim kunci publik dalam surel untuk dipasang ke server jarak jauh:

1) SSH ke server. Saya menggunakan Putty pada Windows.

2) Atur kunci:

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

Berhati-hatilah untuk menyalin kunci dan menempelkannya ke baris baru di jendela editor. Verifikasi bahwa ia menempati satu baris dan simpan.

chmod 600 ~/.ssh/authorized_keys
KalenGi
sumber
2

Karena saya tidak memiliki reputasi yang cukup, saya menambahkan ini di sini. Selain jawaban Louis Matthijssen jika Anda masih tidak dapat masuk melalui ssh sebagai pengguna yang Anda buat, seperti

ssh username@host

maka ini mungkin karena tidak adanya izin pemilik yang harus Anda tambahkan ke folder /home/username/.ssh Anda. Saya memiliki masalah yang sama dan Anda dapat memberikan izin ini sebagai:

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

Ini mungkin dapat terjadi hanya karena Anda membuat direktori dan mengatur izin sebagai root , tetapi bukan sebagai nama pengguna yang ingin Anda akses ke server.

Semoga ini bisa membantu seseorang.

Shivam Sharma
sumber
0

mencoba

 touch $HOME/.ssh/authorized_keys

untuk membuat file kosong dengan hak pengguna itu.

File ini dibuat saat Anda mengakses host jarak jauh pertama dengan pengguna itu.

DGA
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