Izin Kunci SSH Izin pengaturan chmod?

63

Saya perlu menggunakan SSH pada mesin saya untuk mengakses situs web dan databasenya (menyiapkan tautan simbolis - tetapi saya ngelantur).

Masalah berikut: Saya memasukkan perintah: ssh-keygen -t dsa
Untuk menghasilkan pasangan kunci dsa publik / pribadi. Saya menyimpannya di default ( /home/user/.ssh/id_dsa): Dan masukkan Masukkan frasa sandi dua kali

maka saya mendapatkan ini kembali:

PERINGATAN: FILE KUNCI PRIVATE YANG TIDAK DILINDUNGI!
Izin 0755 untuk '/ rumah / etc. Shs / id_rsa' terlalu terbuka. Disarankan bahwa file kunci pribadi Anda TIDAK dapat diakses oleh orang lain. Kunci pribadi ini akan diabaikan. izin buruk: abaikan kunci: [lalu FILE PATH di VAR / LIB / SOMEWHERE]

Sekarang untuk mengatasi hal ini saya kemudian mencoba-

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

Tetapi tidak lama setelah komputer saya membeku - dan saat masuk kembali ada could not find .ICEauthority error. Saya mengatasi masalah ini - dan menghapus file SSH tetapi ingin dapat menggunakan izin yang benar untuk menghindari masalah ini di masa depan. Bagaimana cara saya mengatur ICEauthority, atau di mana saya harus menyimpan Kunci SSH- atau izin apa yang harus mereka miliki? Apakah menggunakan mesin virtual adalah yang terbaik?

Ini semua sangat baru dan saya berada pada kurva belajar yang sangat curam, jadi bantuan apa pun dihargai.

crissixpaul
sumber
salah ketik hanya satu set kunci yang dihasilkan!
crissixpaul
izin untuk .ssh dir sama pentingnya dengan izin kunci. Ini harus 600. Untuk memperbaikinya menjalankan: chmod -R 600 ~/.ssh.
KWubbufetowicz
4
sebenarnya izin direktori .ssh harus 700 bukan 600. Izin mengeksekusi adalah yang memberi Anda akses ke apa yang ada di dalam direktori itu. Jadi perintah yang benar seharusnya chmod 700 $HOME/.sshdanchmod 600 $HOME/.ssh/id_rsa
MelBurslan
Kesalahan tentang .ICEauthority tidak terkait dengan chmodperintah yang Anda tampilkan. Entah itu kebetulan atau Anda menjalankan beberapa perintah lain yang tidak Anda perlihatkan kepada kami.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(Yaitu chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) benar.

chmod 644 ~/.ssh/id_rsa.pub(Yaitu chmod a=r,u+w ~/.ssh/id_rsa.pub) juga akan benar, tetapi chmod 644 ~/.ssh/id_rsa(Yaitu chmod a=r,u+w ~/.ssh/id_rsa) tidak akan. Kunci publik Anda dapat publik, yang penting kunci pribadi Anda adalah pribadi.

.sshDirektori Anda juga harus dapat ditulis hanya oleh Anda: chmod 700 ~/.sshatau chmod u=rwx,go= ~/.ssh. Anda tentu saja harus dapat membacanya dan mengakses file di dalamnya (mengeksekusi izin). Itu tidak langsung berbahaya jika orang lain bisa membacanya, tetapi itu juga tidak berguna.

Anda tidak perlu sudo. Jangan gunakan sudountuk memanipulasi file Anda sendiri, itu hanya dapat menyebabkan kesalahan.

Kesalahan tentang .ICEauthoritytidak terkait dengan chmodperintah yang Anda tampilkan. Entah itu kebetulan atau Anda menjalankan beberapa perintah lain yang tidak Anda perlihatkan kepada kami.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Apa yang diperlukan dengan izin pada ~ / .ssh / known_hosts?
nikc
0

Saya ingin menambahkan jawaban di atas bahwa bagi saya direktori home saya ( ~/) juga perlu memiliki izin 755, terlepas dari izin ~/.sshdan file di dalamnya. (Ini pada Synology NAS, mungkin tidak berlaku untuk semua linux)

kelalaian
sumber