Разрешения ключа SSH Настройки Chmod?


63

Мне нужно использовать SSH на моей машине для доступа к моему веб-сайту и его базам данных (настройка символической ссылки, но я отвлекся).

Следующая проблема: Я ввожу команду: ssh-keygen -t dsa
Для генерации пары открытый / закрытый ключ dsa. Я сохраняю его по умолчанию ( /home/user/.ssh/id_dsa): и дважды введите Enter passphrase

тогда я получаю это обратно:

ВНИМАНИЕ: Незащищенный частный ключевой файл!
Права доступа 0755 для /home/etc.ssh/id_rsa слишком открыты. Рекомендуется, чтобы ваши файлы закрытых ключей НЕ были доступны другим. Этот закрытый ключ будет игнорироваться. плохие разрешения: игнорировать ключ: [тогда ПУТЬ ФАЙЛА в VAR / LIB / SOMEWHERE]

Теперь, чтобы обойти это, я попытался

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

Но вскоре после того, как мой компьютер завис, и при входе в систему снова появилось сообщение could not find .ICEauthority error. Я обошел эту проблему и удалил файлы SSH, но хочу иметь возможность использовать правильные разрешения, чтобы избежать этих проблем в будущем. Как мне установить ICEauthority, или где я должен сохранить SSH Keys- или какие разрешения у них должны быть? Будет ли лучше использовать виртуальную машину?

Это все очень ново, и я нахожусь на очень крутой кривой обучения, поэтому любая помощь приветствуется.


опечатка - извините, только один набор ключей был сгенерирован!
crissixpaul

разрешения для .ssh dir одинаково важны как ключевые разрешения. Это должно быть 600. Для того, чтобы исправить его запустить: chmod -R 600 ~/.ssh.
KWubbufetowicz

4
на самом деле разрешения каталога .ssh должны быть 700, а не 600. Разрешение на выполнение - это то, которое дает вам доступ к тому, что находится внутри этого каталога. Так что правильные команды должны быть chmod 700 $HOME/.sshиchmod 600 $HOME/.ssh/id_rsa
MelBurslan

Ошибка в .ICEauthority не связана с chmodотображаемыми вами командами. Либо это совпадение, либо вы выполнили некоторые другие команды, которые вы нам не показываете.
Жиль "ТАК - перестань быть злым"

Ответы:


92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(т.е. chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) верны.

chmod 644 ~/.ssh/id_rsa.pub(т.е. chmod a=r,u+w ~/.ssh/id_rsa.pub) также будет правильным, но chmod 644 ~/.ssh/id_rsa(то есть chmod a=r,u+w ~/.ssh/id_rsa) не будет. Ваш открытый ключ может быть открытым, важно, чтобы ваш закрытый ключ был закрытым.

Также ваш .sshкаталог должен быть доступен для записи только вам: chmod 700 ~/.sshили chmod u=rwx,go= ~/.ssh. Вы, конечно, должны быть в состоянии прочитать его и получить доступ к файлам в нем (разрешение на выполнение). Непосредственно вредно, если другие могут его прочитать, но это также не полезно.

Вам не нужно sudo. Не используйте sudoдля манипулирования своими файлами, это может привести только к ошибкам.

Ошибка о .ICEauthorityне связана с chmodкомандами, которые вы показываете. Либо это совпадение, либо вы выполнили некоторые другие команды, которые вы нам не показываете.


Какими должны быть разрешения для ~ / .ssh / known_hosts?
Ник

0

Я хочу добавить к ответам, приведенным выше, что для меня мой домашний каталог ( ~/) также должен иметь разрешения 755, независимо от разрешений ~/.sshи файлов в нем. (Это было на NAS-устройстве Synology, может применяться не ко всем linux)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.