вторник, 26 ноября 2013 г.

Подключение с Linux на Windows по SSH используя winSSHd и ключ авторизации




Передо мной стояла задача – делать резервные копии накомпьютере с операционной системной Linux. Сделать то я сделал резервные копии, а что толку, если скопировать эту копию не могу, потому что у меня только один компьютер с Linux. Решил я делать копии на свой второй компьютер с операционной системой Windows7.  Можно конечно использовать ftp, но как то это несерьезно. Я буду использовать для копирования файлов с Linux на Windows - scp, который использует протокол SSH. Но вот беда, в ОС Windows нет встроенной поддержки ssh (пора бы уже пойти навстречу людям). Ну да ладно, есть сторонние производители разработчики ssh серверов.  В прошлой статье я установил ssh сервер – FreeSSHd (бесплатный). Для целей резервного копирования мне нужно использовать авторизацию по ключу, а на freeSSHd сервере, используя ключ авторизации, мне так и не удалось подключиться с Linux на Windows. Немного погуглив, я решил посмотреть на Bitvise SSH Server (он же winSSHd). В обзорах по ssh серверам для Windows я видел фразу напротив этого сервера – платный, поэтому и не использовал сразу. Так вот, я был приятно удивлен, когда решил посмотреть сколько стоит winSSHd. Оказывается, для некоммерческого использования – бесплатно. То что надо для моих целей.
Используя сервер winSSHd появляется возможность получить шифрованное подключение к Windows компьютеру, шифрованное копирование файлов и шифрованный туннель.

Установка и настройка сервера winSSHd
Скачать сервер winSSHd можно по этой ссылке http://dl.bitvise.com/BvSshServer-Inst.exe (размер файла 8,5Мб).
1.       Запускаю скачанный файл

В первом окне ставлю галочку в графе “I agree to accept all the terms of this License Agreement” (Лицензионное соглашение). Остальные пункты оставил не тронутыми. Продолжаю установку нажатием кнопки Install
2.       Следующее окно – выбор редакции:
- Standart Edition – полнофункциональная версия, ограниченная сроком работы в 30 дней, потом необходимо приобрести лицензию;
- Personal Edition – версия с ограниченными функциями, без ограничения срока работы, бесплатная, нельзя использовать в коммерческих целях
Ограничения по функциям в Personal Edition:
-          для авторизации используются только локальные пользователи Windows (не домен);
-          можно настраивать только одну Windows группу (Everyone);
-          можно настраивать только одну виртуальную группу;
-          ограничение в 10 учетных записей Windows;
-          ограничение в 10 виртуальных учетных записей;
-          GSSAPI (Kerberos и NTLM) аутентификация выключена

Меня устаивает Personal edition, там я и ставлю галочку и нажимаю ОК для продолжения.
В консольном окне выводится процесс установки


3.       Установка завершена


4.       После нажатия кнопки ОК появляется окно Bitvise SSH Server Easy Settings
На первой вкладке Server Settings я указал:
- использовать IP version for listening port Ipv4 (использовать протокол IP четвертой версии). Пока 6 версия у меня в локальной сети не используется.
- Open Windows Firewall – Open port(s) to local network

На второй вкладке Windows accounts:
-          убрал галочку Allow login to any Windows account (разрешить подключение по любой учетной записи Windows). У меня аутентификация будет по ключу.
-          если есть необходимость заходить под пользователем windows, то нажимаем кнопку Add

Нажимаем кнопку lookup чтобы выбрать учетную запись пользователя Windows, которому хотим предоставить удаленный доступ к компьютеру по протоколу ssh. Проставляем (оставляем) галочки на функциональные возможности доступа:
- login allowed (разрешить подключение)
- Public keys (можно сделать авторизацию по ключу). Если нужно нажимаем Public keys и импортируем публичный ключ для этой учетной записи
- Allow file transfer (разрешить передачу файлов)
- Allow terminal (разрешить терминал) – если просто, то разрешить доступ к командному окну (cmd.exe)
- Allow port forwarding (разрешить проброс портов)
- Virtual filesystem layout (права доступа к системе при подключении)

На третьей вкладке Virtual accounts:


-          я создаю учетную запись для подключения по ключу нажимаю кнопку Add
-          предварительно создаю ключ (процесс создания ключа описан здесь – Создание ключа ssh на Linux ) и копирую с помощью winscp созданный публичный ключ sshkey-atlant.pub на компьютер, где установлен winSSHd
-          В окне Adding new entry to Simplified virtual accounts создаю учетную запись для доступа


В поле Virtual account name вбиваю логин пользователя atlant и ставлю галочку напротив Allow terminal (дам возможность себе подключаться к консоли Windows компьютера по ssh)
Нажимаю кнопку Public keys, для добавления ранее созданного публичного ключа


далее нажимаю кнопку Import и указываю файл ключа (это тот файл с расширение .pub, который я загрузил)
- в окнах нажимаю кнопки Close -> OK -> Save changes -> Save settings and start server -> Start server
5.       При настройке winSSHd стояла галочка с разрешением внести изменения в брандмауэр (файервол), но все равно надо добавить правило для доступа к моему компьютеру по ssh, иначе не пустит
- Захожу в настройки брандмауэра и добавляю правило – нажимаю Создать правило


- выбираю Тип правила – Для порта


- Протокол TCP, порт 22


- Разрешить подключение


- далее выбираем профили брандмауэра, для которых будет применяться это правило (я оставил все)
- задаем имя правила (я назвал ssh)

6.       На линукс компьютере запускаю подключение к ssh серверу
ssh -v -i /home/atlant/.ssh/sshkey-atlant atlant@192.168.10.222
где
/home/atlant/.ssh/sshkey-atlant – ключ который я создал
atlant@192.168.10.222 – имя пользователя на сервере winSSHd и ip адрес сервера winSSHd
-v – запуск ssh в режиме отладки

В процессе подключения выдается сообщение, на которое надо ответить - yes
Are you sure you want to continue connecting (yes/no)? yes
Это согласие на то, что я доверяю этому серверу

7.       У меня все отработало корректно и я получил доступ к командному окну Windows

Подведу итог: Для частного (не коммерческого) использования можно использовать winSSHd сервер бесплатно. Удалось организовать подключение Linux Windows с использованием ключа и протокола ssh. Теперь возможно делать полноценные резервные копии с Linux на Windows использую scp.

3 комментария:

  1. За редким исключением можно встретить столь понятное и доступное объяснение. Мне наконец-то удалось понять как это должно быть настроено, хотя бы на начальном уровне.
    БОЛЬШОЕ, Человеческое, СПАСИБО!!

    ОтветитьУдалить
  2. Да, действительна полезная статья! Спасибо, что есть еще такие люди, которые пытаются документировать свои знания и передать таким как мы!
    Вообщем большое спасибо автору!

    ОтветитьУдалить
    Ответы
    1. Прошло 3 года, с тех пор как я написал эту статью. Как ни странно, статья все еще актуальна. Что изменилось за это время? Я стал использовать для резервных копий хостинга яндекс диск. Яндекс диск установил на линукс хостинг как консолный клиент и надобности копий на винду теперь нет. А еще, я установил себе на компьютер линукс (centos) вместо виндовз и нисколько об этом не жалею, работаю на линуксе уже два года. По своему опыту скажу так: Не теряйте зря время на изучение виндовых рюшечек, лучше один раз скрипт в линуксе написать или конфигурацию настроить и все будет работать годами.

      Удалить