ssh повертає "Неправильний власник або дозволи на ~ / .ssh / config"


366

Коли я намагаюся перенести ssh до іншого поля, я отримую цю дивну помилку

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

Але я переконався, що я маю та маю rw дозволи на файл:

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

У мене просто було те саме повідомлення. Моя справа була іншою. У мене був глобальний IdentityFile ~/.ssh/id_rsaнабір, тому коли я намагався отримати доступ до user@myserver.com, він намагався використовувати цей id_rsa, не ставлячи під сумнів пароль. Уникайте глобальної IdentityFile, і все буде добре.
giovannipds

Відповіді:


569

Мені потрібно було мати rw для дозволів лише для користувачів у config. Це і виправило.

chmod 600 ~/.ssh/config

Як інші зазначали нижче, це може бути власник файлу. (підкресли їх!)

chown $USER ~/.ssh/config

22
Іноді проблему можуть спричинити не тільки дозволи, але й власник; у моєму випадку мені довелося це зробити також:chown -R robert:robert ~/.ssh
Ніколас C

3
У моєму випадку, перехід від 644 до 600 зробив свою справу.
Magicsowon

2
Дозвіл лише на читання має бути достатнім, тобто400
030

1
Для мене 600не вийшло, тільки 400(на Ubuntu Xenial)
Мартін Колл

@ 030 До тих пір, поки ви не збираєтесь редагувати файл ..
Шон Бін

64

Ці команди повинні вирішити проблему з дозволом:

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

Префікс, sudoякщо файли належать іншому користувачеві (або ви не маєте до них доступу).

Якщо постраждало більше файлів, замініть configна *.

У man sshнас можна прочитати:

Через потенцію до зловживань, цей файл повинен мати суворі дозволи: читати / писати для користувача, а не підлягати написанню. Це може бути доступно для запису групи, за умови, що у відповідній групі є лише користувач.


3
Це зробило для мене трюк. Я використовую cygwin і cygwin .ssh є посиланням на користувач Windows .ssh. Мені довелося запускати ці команди у вікно cygwin.
Дамодар Башіял

Це працювало для мене.
Viraj.Hadoop

12

Для мене це була проблема, оскільки мій обліковий запис користувача не був власником файлу

sudo chown myuser ~/.ssh/config

2

За замовчуванням у WSL (підсистема Windows для Linux) chmod не впливає. Перш ніж ви зможете chmodдодати файли, згадані в інших відповідях, потрібно додати

[automount]
options = "metadata"

щоб ваш /etc/wsl.confперезапустити WsL (потрібно побудувати 17093 або пізнішої версії).

Перед монтом каже:

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

Після монтажу каже:

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,metadata,case=off)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.