Неправильный владелец или права доступа к файлу конфигурации ssh

Неправильный владелец или права доступа к файлу конфигурации ssh

Я понял, что больше не могу подключиться к веб-серверу по адресу x.x.202.50. Вчера я изменил следующий файл конфигурации ssh: /share/homes/admin/.ssh/configдобавив следующие настройки:

# ssh (secure shell) configuration file
Host webserver
    HostName x.x.212.50
    User user1
    IdentityFile ~/.ssh/id_rsa `

Причина, по которой я это сделал, — это включение ключа входа в систему для синхронизации (с Unison).

Теперь при попытке подключиться к серверу я получаю следующую ошибку:

Неправильный владелец или права доступа к /share/homes/admin/.ssh/config

Я устанавливаю соединение Puttyс Windows 10 и с сервера Linux на другой сервер Linux.

Мне нужно подключиться к серверу, потому что я участвую в проекте, и я не знаю, как это сделать. Кто-нибудь знает, как это сделать?

решение1

Вам нужно изменить права доступа к каталогу .ssh. Выполните следующее (я обнаружил, что 600 не исправит это самостоятельно):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

решение2

Общее правило для файлов, которые могут повлиять на безопасность (закрытые ключи, файлы конфигурации, авторизованные ключи), заключается в том, что они не должны быть доступны для записи никому, кроме владельца (закрытые ключи не должны быть доступны!).

Ошибка исходит откод opensshниже:

if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
    (sb.st_mode & 022) != 0))
      fatal("Bad owner or permissions on %s", filename);

Таким образом, переводя это на английский язык, мы получаем, что файл конфигурации должен принадлежать пользователю root или пользователю, запустившему его, sshи не может быть доступен для записи какой-либо группе или другим пользователям.

Как уже отмечалось в комментариях, вы, вероятно, каким-то образом предоставили эти разрешения кому-то, поэтому удаление этих разрешений должно решить эту проблему:

chmod go-w /share/homes/admin/.ssh/config

решение3

У меня есть однопользовательская машина Linux, которая использует тот же каталог '.ssh' с учетной записью root. /root/.ssh — это символическая ссылка, указывающая на папку пользователя '/home/username/.ssh'.

Я только недавно добавил файл ~/.ssh/config, и это заставило SSH выдать мне сообщение об ошибке при вызове SSH и SSHFS из учетной записи root. Решением для меня было сделать следующее:

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

Это немного проблематично, когда мне приходится редактировать файл, так как это требует от меня возиться с разрешениями и владельцем файла, а затем возвращать их обратно. Но это моя собственная проблема, потому что я решил предоставить общий доступ к папке для учетных записей. Я создал несколько скриптов оболочки, чтобы менять разрешения только при вызове команды 'sshfs' или 'ssh' из учетной записи пользователя root.

решение4

Другие ответы решают проблему только в случае неправильного разрешения. Однако в моем случае проблема была в неправильном владельце файла. Вы можете запустить, ls -l ~/.sshчтобы просмотреть информацию о разрешениях и владельцах. Владельца файла можно увидеть в 3-м столбце. Если он неправильный, выполните:

chown <newOwner> <fileName>

Связанный контент