
Я понял, что больше не могу подключиться к веб-серверу по адресу 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>