Вход в систему SSH с помощью открытого ключа перестал работать

Необходимо использовать туннель ssh, (клиенты: openssh на смокинге, шпаклюйте на победе),

Туннель перенаправит Ваш локальный порт, скажет 3128 к Вашему сквиду (так localhost:3128 на Вашем удаленном сквиде хостинга машины)

Так, лично я использую:

ssh -N -f -L3128:localhost:3128 example.com

- N не выполняют удаленную команду. Это полезно для просто портов пересылки (только версия протокола 2).

- f Запросы ssh для движения в фон непосредственно перед выполнением команды.

- L: Порт 3128 туннелирован на exemple.com к localhost:3128

Используя шпаклевку можно сделать то же, просто следовать инструкциям, найденным тут же: http://www.google.com/search?q=putty+tunnel+ssh

Вы будете, добрался, снимки экрана каждого ступает с объяснениями, необходимо видеть:

L3128 localhost:3128 на Вашем окне Tunnels в Вашей шпаклевке, если у Вас есть прокси на Вашем удаленном поле, затем просто настраивает Ваш браузер для использования прокси в localhost:3128

Другая возможность состоит в том, чтобы использовать-D (Динамичный) так, чтобы иметь

D1080 на Вашем окне Tunnels в шпаклевке, это работает как сервер Носков, поэтому настраивают Ваш браузер для использования сервера носков на localhost:1080, у этого не должно быть прокси, работающего на удаленном сервере, таким образом, это - мой фаворит!

7
задан 22 April 2012 в 18:43
6 ответов
  1. Всякий раз, когда возникает проблема ssh'ing на сервер, всегда лучше добавить флаг -v , например

     $ ssh -v host -l user
    
  2. В обоих вышеупомянутых случаях открытый ключ ( id_rsa.pub ) должен быть добавлен в файл «.ssh / authorized_keys удаленного пользователя». В вашем случае выше как root, так и user1. Это легко сделать с помощью команды ssh-copy-id .

  3. / var / log / secure будет содержать подсказки относительно того, почему вход не был успешным.

  4. Разрешения каталога должны быть 700 [rwx] (не 600) [rw -]

4
ответ дан 2 December 2019 в 23:20

Некоторое время назад я столкнулся с аналогичной проблемой, попробуйте выполнить

chmod -R 600 ~/.ssh 

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

Я тоже считаю, что нужно переименовать файл из id_rsa.pub в authorized_keys.

2
ответ дан 2 December 2019 в 23:20

Некоторые примечания: Поскольку вы специально отключили аутентификацию по паролю, вы не можете войти с паролем. Я считаю, что вам нужно настроить разрешенных пользователей с некоторыми другими (Match User, возможно, лучший способ двигаться вперед). Кроме того, вам необходимо специально разрешить пользователю root (PermitRootLogin установит для него значение yes).

1
ответ дан 2 December 2019 в 23:20

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

passwd user1
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
7
ответ дан 2 December 2019 в 23:20

Было бы разумно предоставить нам дополнительную информацию о настройках в / etc / ssh / sshd_config , в частности StrictModes ( grep StrictModes / etc / ssh / sshd_config ). StrictModes - это параметр, который определяет, насколько чувствительно sshd реагирует на права доступа к файлам и папкам каждого пользователя соответственно ~ / .ssh и ~ / .ssh. / авторизованные_ключи . Вы также не предоставили нам настройку AuthorizedKeysFile в вашем sshd_config . Очень актуально, если ваш SSH-сервер ищет файл где-то еще, чем вы его поместили.

Но помимо ответов на данный момент, для этого может быть множество причин. Проблема в том, что даже несмотря на то, что вы пытались, информации недостаточно, чтобы точно догадаться, что не так.

Еще одна вещь может быть ограничением PAM ( UsePAM в sshd_config ). Раньше это было в Ubuntu. Если для учетной записи пользователя не установлен пароль (аутентификация только с открытым ключом), он не будет разрешен.

Но позвольте мне дать вам общий метод для отладки таких проблем.

Обычное устранение неполадок sshd

В таких случаях я считаю очень полезным запускать sshd , не позволяя ему демонизировать («перейти в фоновый режим и отсоединиться от терминала»). Часто журналы не слишком полезны, особенно когда у вас есть ошибка конфигурации (что, по крайней мере, не является очевидным случаем).

Вы запускаете его с терминала следующим образом:

# $(which sshd) -Ddp 10222

Это даст вам много вывода отладки, который иначе не появился бы (без -d ) или попал в журналы, если вам повезет.

NB: the $ (which sshd) - лучший способ удовлетворить требование sshd об абсолютном пути. В противном случае вы получите следующую ошибку: sshd re-exec требует выполнения с абсолютным путем . -p 10222 заставляет sshd прослушивать этот альтернативный порт, переопределяя файл конфигурации - так, чтобы он не конфликтовал с потенциально запущенными экземплярами sshd . Не забудьте выбрать здесь свободный порт.

Этот метод много раз помогал мне в обнаружении проблем, будь то проблемы с аутентификацией, проблемы с производительностью или другие типы проблем. Чтобы получить действительно подробный вывод в stdout , используйте $ (which sshd) -Ddddp 10222 (обратите внимание на добавленный dd для увеличения подробности). Для дополнительной проверки исправности отладки man sshd .

На стороне клиента ssh может принимать -v (до -vvv ) чтобы быть действительно подробным о том, что он делает.


Строка журнала

... ubuntu sshd[8476]: User root not allowed because account is locked

намекает на то, что проблема, поэтому запустите:

sudo passwd -u root
1
ответ дан 2 December 2019 в 23:20

В CentOS selinux может блокировать аутентификацию. Для решения проблемы используйте команду:

restorecon -Rv ~ /. ssh
1
ответ дан 2 December 2019 в 23:20

Теги

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