Почему не работает SSH сервер на windows7 x86, а работает SSH клиент

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

Вот в чем дело, я пытаюсь установить службу SSH для двух компьютеров, чтобы каждый мог общаться с другим. Я успешно установил SSH для моего ПК, который является win7-x64, через Cygwin. Однако, когда я повторил это на другом компьютере, который является сервером с win7-x86, сервер SSH вышел из строя, в то время как клиент может работать, я совершенно запутался.

Для моего компьютера я установил Cygwin для использования службы SSH. ssh localhost работает отлично. И после генерации ключей SSH и добавления его к authorized_keysМне удалось войти на свой компьютер без пароля.

Я скопировал папку cygwin со своего компьютера на сервер, который не подключен к Интернету, поэтому на него нельзя установить cygwin напрямую. ssh localhost с первого раза получилось нормально. Но когда я попытался войти без пароля, генерируя ssh-ключи и добавляя authorized_keys, Я получил

Connection to localhost closed by remote host
Connection to localhost closed.

Более того, я скопировал открытый ключ сервера на свой компьютер и добавил в authorized_keys файл. Мне удалось войти на ПК с сервера без пароля.

С другой стороны, SSH-соединение с ПК на сервер не удалось, независимо от того, с паролем или без. Я получил тот же сбой:

Connection closed by 192.168.0.52

где 192.168.0.52 это IP-адрес сервера.

Что меня больше смущает, так это когда я подключаюсь к серверу с ПК, используя putty скорее, чем ssh Команда, я мог войти на сервер, с паролем.

В заключение, я надеюсь, что это сделало бы вопрос более понятным с помощью этого графика: ssh connection graph

Я надеюсь, что любой может помочь мне понять, что не так и как это исправить. Большое спасибо!

1 ответ

Решение

Попробовав несколько столетий, я наконец обнаружил, что происходит. Когда я построил службу sshd на сервере, я не создал привилегированную учетную запись (по умолчанию "cyg_server"), которую я сделал на своем ПК, но забыл. Вместо этого я использовал текущую учетную запись для входа. Тем не менее, учетная запись, даже администратор, в windows не имеет всех прав доступа, как у root в Linux. Учитывая это, Cygwin намеренно создает привилегированную учетную запись с именем "cyg_server", мы просто оставляем ее и авторизируемся с использованием текущей учетной записи. Все хорошо!

Опять же, f**k для Windows (Так зачем мне это делать на Windows? Ну, если бы я мог, я бы сделал это)

Другие вопросы по тегам