1

У меня вопрос по ssh без пароля с одной домашней папкой.

Я создал общую учетную запись /home /developers и нескольких пользователей (developerA, developerB ...). Всем разработчикам была делегирована одна и та же домашняя папка (/home /developers).

Как разработчик на своей машине, я сделал следующее:

  1. ssh-keygen -t rsa -f developerA -C developerA@mycompany.com
  2. (на сервере). добавил .pub в файл сервера /home/developers/.ssh/authorized_keys
  3. ssh developerA @ myServer -i developerA

Я думаю, что проблема связана с разрешениями, потому что файл author_keys принадлежит разработчикам (-rw ------- 1 разработчикам разработчикам 2033 нояб. 11 22:55 авторизованных_кей)

У кого-нибудь есть решение этой проблемы или как обойтись многопользовательским ssh без пароля без создания домашней папки для каждого из них.

Заранее спасибо ребята

6 ответов6

2

У вас есть только один пользователь. Так что это не проблема для нескольких пользователей. Убедитесь, что каталог .ssh имеет режим 700.

Тем не менее, вы все равно делаете это неправильно. Вы должны создать разных пользователей для каждого разработчика и поместить их в общую группу. Если им нужно работать с одними и теми же файлами, вы можете сделать их доступными для записи по их общей группе и поместить их в каталог, в котором установлен флаг "set group ID", поэтому все, что они записывают в него, будет принадлежать группе.

2

Поскольку он спросил, у него должны быть свои причины. Вот несколько идей:

  1. Убедитесь, что строка вашего открытого ключа не упакована. Это должно быть на одной непрерывной линии в author_keys.
  2. Права доступа должны быть rw-rr (644) для авторизованного ключа.
  3. Проверьте разрешения для ~/.ssh. Должно быть rwx-- (700).
  4. Также убедитесь, что /etc /ssh /sshd_config содержит "PubkeyAuthentication yes".
1

Логин без пароля по SSH:

  • сгенерируйте пару секретный / открытый ключ без ключевой фразы и поместите открытый ключ в ваш файл author_keys:

    ssh-keygen -t dsa -N ""
    cd .ssh/
    cat id_dsa.pub >> authorized_keys
    

Защита авторизованных ключей:

  • Файл author_keys должен быть доступен для чтения только пользователю, а домашний каталог пользователя может быть доступен для записи только пользователю:

    chmod go-rwx authorized_keys
    chmod go-w ~/
    
1

По моему опыту, ssh очень внимательно относится к разрешениям для файлов и каталогов. Файл author_keys должен быть 'rw-r - r--', и каталог .ssh, в котором он находится, также должен быть доступен каждому (но не для записи в мире). Это означает, что диктатор .ssh и полный путь к каталогу, ведущий к Это.

Если вы не понимаете это правильно, вход в систему при обмене ключами завершается ошибкой.

Майк

0

@joebob понял это правильно! Еще несколько деталей (обратите внимание на его последнюю строку)

Из этого поста вы можете увидеть, что SSH откажется использовать папку .ssh в домашнем каталоге, который является общим. В моем случае, глядя на /var/log/messages я вижу:

10 марта 09:57:13 sshd [32249]: Отказ в аутентификации: неправильное владение или режимы для каталога /home /

На указанном сайте есть два решения для этого:

  1. Исправить разрешения

    chmod g-w /home/your_user
    chmod 700 /home/your_user/.ssh
    chmod 600 /home/your_user/.ssh/authorized_keys
    
  2. StrictModes off в вашем /etc/ssh/ssh_config (не рекомендуется)

К сожалению, я нахожусь на производственном ящике и не могу проверить ни одно из решений ... Я также ищу третий вариант, если это возможно, так как из-за настроек нашей команды я не могу изменить разрешения для домашнего каталога ... (плохая модель - я знаю)

-2

Очень много пользователей с одним домашним каталогом - очень плохая идея. Пользователи будут ненавидеть вас, а программы будут ненавидеть вас. Не делай этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .