SSH Authorized_Key Логин работает только в одном направлении
1779
cmcginty
В моей настройке есть три файла:
id_rsa id_rsa.pub authorized_keys
authorized_keysимеет копию id_rsa.pubсодержимого, чтобы разрешить вход без пароля.
Эти файлы были скопированы между двумя компьютерами. Если я ssh с компьютера1 на компьютер2, это работает. Если я ssh с coputer2 на computer1, он запрашивает пароль. Может кто-нибудь сказать мне, почему это может произойти.
Также обе системы работают под управлением Ubuntu 10.04. Я переустановил пакеты openssh-server в обеих системах. Права доступа к файлам одинаковы. Файлы / etc / ssh sshd_configи ssh_configфайлы совпадают. Я работал с -v -v -vи единственное различие между этими двумя сессиями, то, что один говорит, что «ключ был принят сервером», другой просто продолжает запрос пароля.
Вы можете получить выходные данные отладки сервера, остановив сервер и запустив его из командной строки:
sudo /usr/sbin/sshd -Dd
Это дало мне следующий вывод после попытки входа с другого компьютера:
... Authentication refused: bad ownership or modes for directory /home/user ...
Проверка моего каталога:
ls -l /home/user drwxrwxr-x 142 user user 7.7K 06-19 15:45 /home/user/
Правильные разрешения должны быть:
chmod 750 /home/user
После того, как я это сделал, теперь это работает.
0
Daenyth
Вы добавили отпечаток с компьютера1 .ssh/authorized_keysна компьютер2?
Кроме того, вы не должны использовать один и тот же закрытый ключ среди многих ящиков, так как это ослабляет безопасность в случае взлома одного ящика. Лично я использую один ключ на клиента на сервер.
Что касается вашего второго пункта, вот почему ключи всегда должны иметь пароль. Также см. Связанные http://superuser.com/questions/121307/is-it-reasonable-to-have-multiple-ssh-keys
Benjamin Bannier 14 лет назад
0
Файл author_keys одинаков на обоих компьютерах, если вы это имеете в виду. Кроме того, я согласен с вопросами безопасности, сейчас я просто хотел бы решить эту проблему, даже если бы я в конечном итоге переключал ключи по линии.
cmcginty 14 лет назад
0
Попробуйте установить уровень журнала sshd на DEBUG на компьютере2. После неудачной попытки подключения следует объяснить, почему ключ был отклонен.
Daenyth 14 лет назад
0
Я не мог получить какую-либо информацию на стороне клиента, используя '-v -v -v'. есть ли другой метод?
cmcginty 14 лет назад
0
Посмотрите логи на стороне сервера. Вероятно, он находится в `/ var / log / secure` или` / var / log / auth.log` ... Посмотрите вокруг, вы должны это увидеть. Установите уровень журнала sshd на DEBUG в `sshd_config`
Daenyth 14 лет назад
0
0
dhbanes
В дополнение к ответу Daenyth следует проверить одну вещь: владение файлами и разрешения в вашем каталоге ~ / .ssh на обоих компьютерах.
Убедитесь, что вы установлены как пользователь для всех файлов в этом каталоге: chown *USERNAME*: ~/.ssh/*
Кроме того, убедитесь, что разрешения таковы, что файлы доступны для чтения и записи для вашего пользователя, но не доступны для группы или других пользователей :chmod 600 ~/.ssh/*
да, файлы и .ssh dir принадлежат мне, все разрешения установлены на 600.
cmcginty 14 лет назад
0
-1
TD1
Домашний каталог не может быть доступен для записи как для мира, так и для группы, не только для .ssh dir и файлов, если ваш файл sshd_config имеет StrictModes = yes.
Протестируйте, изменив StrictModes = no, и перезапустите демон sshd.
-1: это создает потенциальную дыру в безопасности, которую вы не объяснили ...
Blacklight Shining 11 лет назад
0