Показаны сообщения с ярлыком ssh. Показать все сообщения
Показаны сообщения с ярлыком ssh. Показать все сообщения

вторник, 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.

понедельник, 25 ноября 2013 г.

Создание ключа ssh на Linux


- подключился к компьютеру Linux (из под Windows можно подключиться c помощью PuTTY)
- в консольном окне ввожу команду
ssh-keygen -t rsa -C "atlant"
где atlant – имя пользователя, под которым я буду подключаться
Появляется сообщение Enter file in which to save the key (введите имя файла ключа). Если имя файла ключа вас устраивает, можете просто нажать Enter. Я ввел путь к домашнему каталогу и имя файла /home/atlant/.ssh/sshkey-atlant
Далее Enter passphrase (введите пароль для доступа к ключу). Я вводить не стал, просто нажал Enter (доступ к файлу ключа на Linuxe кроме меня никто не имеет). Если у вас открытый доступ к ключам, ну например файл ключа хранится на компьютере к которому есть доступ у разных сотрудников, то тогда лучше ввести passphrase.
На экране пробегут строки, с указанием пути и названием файлов ключей
Your identification has been saved in /home/atlant/.ssh/sshkey-atlant.
Your public key has been saved in /home/atlant/.ssh/sshkey-atlant.pub.
- Ну вот и созданы два ключа, один публичный с расширение .pub (выкладывается на сервер) и личный ключ для доступа.

Подключение к серверу ssh из под Linux

ssh -v -i /home/atlant/.ssh/sshkey-atlant atlant@192.168.10.222


где

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