2

У меня есть два хоста RH linux, одна и та же сборка, назовите их A & B.

Я могу с радостью использовать ssh от A до B, используя открытый ключ, но я просто не могу войти в A из B (или с моего рабочего стола, используя putty & pageant в этом отношении) без запроса пароля. Кажется, с А должно быть что-то немного другое, но я не могу понять, что.

Права на файл author_keys и каталог .ssh верны, а PubkeyAuthentication равно 'yes' в sshd_config.

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

3 ответа3

1

Вы должны отладить это на сервере, если можете. Если у вас есть root-доступ на сервере, попробуйте стать пользователем root и затем выполните:

/path/to/sshd -ddd -p 1022

Это запустит экземпляр SSH-сервера, который прослушивает порт 1022, принимает одно соединение и распечатывает информацию об отладке на вашем терминале. Запустите ваш клиент как обычно, за исключением того, что укажите порт 1022 в качестве порта:

ssh -p 1022 user@A

Надеемся, что отладочная информация, напечатанная сервером, прояснит причину вашего отклонения.

1

Я могу счастливо переместиться из A в B, используя открытый ключ, но я просто не могу войти в A из B ... без запроса пароля.

Чтобы перейти от X к Y, открытый ключ X должен быть в файле author_keys Y

Запустите команду ssh, чтобы перейти от A к B, где он запрашивает пароль, например

$ssh user@host

Затем выполните Ctrl-C, чтобы вы знали, что у вас есть команда ssh, поэтому она запрашивает пароль.

Но на этот раз измените ssh на ssh-copy-id

Это запросит пароль. Введите пароль. Теперь выход.

Затем, когда вы в следующий раз войдете в систему, он должен войти автоматически.

Чтобы это работало, у вас должны быть ключи от A.

Если у вас еще нет ключей на A, запустите $ssh-keygen

Затем выполните ssh-copy-id как описано.

При подключении от A к B все команды, упомянутые здесь, ssh или ssh-copy-id или ssh-keygen, запускаются из A.

0

Пожалуйста, проверьте, был ли iptables настроен для разрешения входящего доступа SSH

 iptables --list

В нем будут перечислены существующие правила iptable

Вы можете разрешить входящий SSH только из отдельной сети с помощью следующей команды

iptables -A INPUT -i eth0 -p tcp -s 192.168.200.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Надеюсь это поможет!

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