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


Шаги:

Как пользователь testUser на веб-сервере:

mkdir ~/.ssh

cd ~/.ssh

ssh-keygen (use default file location and empty passphrase)

ssh-keygen -t dsa (as before)

Перенесите сгенерированные открытые ключи на сервер отчетов.

Как пользователь testUser -

sftp testUser@<ReportServerName>

put id_dsa.pub

put id_rsa.pub

quit

Выполните следующие действия на сервере отчетов.

Как пользователь testUser

mkdir ~/.ssh

cd ~/.ssh

cat ~/id_rsa.pub >> authorized_keys

cat ~/id_dsa.pub >> authorized_keys2

rm ~/id_*.pub

chmod 644 auth*

Как пользователь root vi /etc /ssh /sshd_config

Раскомментируйте 'PubkeyAuthentication yes'

/etc/init.d/sshd restart

После выполнения этих шагов, когда я пытаюсь выполнить sftp testUser @, он все равно запрашивает у меня пароль.

Может кто-нибудь помочь?

2 ответа2

2

Здесь есть несколько возможных подводных камней. Поскольку вы создали каталоги самостоятельно, разрешения могут быть неправильными.

Следующие разрешения необходимы:

  • Каталог ~/.ssh не должен быть доступен для чтения никому, кроме владельца, поэтому обычно chmod 700 . Это не должно быть доступно для записи никому, кроме владельца.
  • Файлы с закрытым ключом не должны быть доступны для чтения или записи никем, кроме владельца, поэтому обычно chmod 600 . ssh-keygen уже делает это для вас.
  • Файл ~/.ssh/authorized_keys не должен быть доступен для записи никому, кроме владельца, поэтому, по крайней мере, chmod 644 . (Открытые ключи не являются секретными - по определению!)

Если сомневаетесь: запустите sshd в режиме отладки. Он останется подключенным к терминалу:

sudo /usr/bin/sshd -p 2222 -d

Затем подключитесь с вашего клиента через порт 2222:

ssh -p 2222 my-ssh-server

Сервер регистрирует любую ошибку, с которой сталкивается. Это может быть что-то вроде этого:

Отказ в аутентификации: неправильное владение или режимы для каталога /home/fuzzy/.ssh

0

Есть несколько шагов отладки:

  • Проверьте журналы с обеих сторон. Вероятно /var/log/auth.log .
  • Запустите ваше ssh-соединение в подробном режиме ssh -v .
  • Проверьте доступ каждого каталога от ~/.ssh до '/'. Ни один из этих каталогов не может быть или другим для записи.

Вы можете проверить доступ с помощью этих двух строк. (Предполагается, что права root в порядке).

cd ~/.ssh; DIR=$PWD
while [ $DIR != '/' ]; do ls -ld $DIR; DIR=$(dirname $DIR); done

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