SSH Authorized_Key Логин работает только в одном направлении

1781
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и единственное различие между этими двумя сессиями, то, что один говорит, что «ключ был принят сервером», другой просто продолжает запрос пароля.

Так что еще осталось проверить?

0

4 ответа на вопрос

1
cmcginty

Вы можете получить выходные данные отладки сервера, остановив сервер и запустив его из командной строки:

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

Похожие вопросы