ssh mengembalikan "Pemilik buruk atau izin pada ~ / .ssh / config"

366

Ketika saya mencoba ssh ke kotak lain, saya mendapatkan kesalahan aneh ini

$ ssh hostname
Bad owner or permissions on ~/.ssh/config

Tetapi saya memastikan bahwa saya memiliki dan memiliki izin baru pada file tersebut:

ls -la ~/.ssh/
total 40K
drwx------ 2 robert robert 4.0K Mar 29 11:04 ./
drwx------ 7 robert robert 4.0K Mar 29 11:04 ../
-rw-r--r-- 1 robert robert 2.0K Mar 17 20:47 authorized_keys
-rw-rw-r-- 1 robert robert   31 Mar 29 11:04 config
-rw------- 1 robert robert 1.7K Aug  4  2010 id_rsa
-rw-r--r-- 1 robert robert  406 Aug  4  2010 id_rsa.pub
-rw-r--r-- 1 robert robert 6.1K Mar 29 11:03 known_hosts
Robert
sumber
Saya hanya punya pesan yang sama. Kasus saya berbeda. Saya memiliki IdentityFile ~/.ssh/id_rsaset global , jadi ketika saya mencoba mengakses [email protected] itu mencoba menggunakan id_rsa itu tanpa mempertanyakan kata sandi saya. Hindari IdentityFile global dan semuanya akan berjalan dengan baik.
giovannipds

Jawaban:

569

Saya perlu memiliki rw untuk izin hanya pengguna di konfigurasi. Ini memperbaikinya.

chmod 600 ~/.ssh/config

Seperti yang orang lain catat di bawah, itu bisa menjadi pemilik file. (Suara positif mereka!)

chown $USER ~/.ssh/config
Robert
sumber
22
Terkadang bukan hanya izin, tetapi juga pemilik yang dapat menyebabkan masalah; dalam kasus saya, saya harus melakukan ini juga:chown -R robert:robert ~/.ssh
Nicolas C
3
Dalam kasus saya, beralih dari 644 ke 600 berhasil.
Magicsowon
2
Izin baca saja sudah cukup, yaitu400
030
1
Bagi saya, 600tidak berhasil, hanya 400(di Ubuntu Xenial)
Martín Coll
@ 030 Selama Anda tidak berniat mengedit file ..
Sean the Bean
64

Perintah-perintah ini harus memperbaiki masalah izin:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

Awali dengan sudojika file dimiliki oleh pengguna yang berbeda (atau Anda tidak memiliki akses ke sana).

Jika lebih banyak file terpengaruh, ganti configdengan *.

Di dalamnya man sshkita bisa membaca:

Karena potensi penyalahgunaan, file ini harus memiliki izin ketat: baca / tulis untuk pengguna, dan tidak dapat ditulisi oleh orang lain. Mungkin dapat ditulis kelompok asalkan grup tersebut hanya berisi pengguna.

kenorb
sumber
3
Ini berhasil bagi saya. Saya menggunakan cygwin dan cygwin .ssh dikaitkan dengan pengguna windows .ssh. Saya harus menjalankan perintah itu di jendela cygwin.
Damodar Bashyal
Ini berhasil untuk saya.
Viraj.Hadoop
12

Bagi saya itu adalah masalah dengan akun pengguna saya yang bukan pemilik file

sudo chown myuser ~/.ssh/config
svnm
sumber
2

Secara default pada WSL (Subsistem Windows untuk Linux) chmod tidak berpengaruh. Sebelum Anda dapat chmod, file yang disebutkan dalam jawaban lain harus Anda tambahkan

[automount]
options = "metadata"

untuk /etc/wsl.confkemudian restart WSL Anda (memerlukan build 17093 atau lebih baru).

Sebelum mount mengatakan:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)

Setelah mount mengatakan:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,metadata,case=off)
Nathan Kidd
sumber