Подключение через ssh. Принцип работы SSH

SSH (Secure Shell) - это сетевой протокол удаленного доступа, использующий шифрование и сжатие для передаваемых данных. Проще говоря - это весьма полезный и мощный инструмент, позволяющий аутентифицироваться в системе и полноценно работать от имени локального пользователя, находясь за много километров от работающей машины. Также, в отличие от telnet и rsh - SSH шифрует весь трафик, так что вся переданная информация остается конфиденциальной.

Итак, ssh у нас уже установлен и ssh-daemon добавлен в автозагрузку при старте системы. Управлять им можно по команде:

service ssh stop|start|restart

В Ubuntu, или:

/etc/init.d/ssh {start|stop|reload|force-reload|restart|status}

В Debian, или:

systemctl start|stop|restart sshd.service

В ArchLinux (после каждой правки конфига нужно делать рестарт). В комплект входит клиент и сервер.

Опробуем в деле! Для начала создайте папку ~/.ssh

mkdir ~/.ssh

Сгенерируйте ключи для данного пользователя сервера командой:

ssh-keygen (от имени обычного пользователя).

При генерации, вы можете задать парольную фразу для ключа (желательно задать, и длинную - тогда даже заполучив ключ но не зная пароль от ключа, злоумышленник не сможет залогинится), а можете пропустить, просто нажав "Enter" - в таком случае, пароль никогда не спросится. В папке ~/.ssh появились те самые публичный и закрытый ключ.

Найдите ещё одну машину (даже смартфон подойдет - на Android есть несколько замечательных SSH-клиентов, вроде ConnectBot или JuiceSSH), установите на ней ssh и подключитесь к серверу командой:

ssh user@server

Если всё сделано правильно, будет запрошен пароль пользователя, и после ввода вы окажетесь в своей системе с видом из командной строки.

Для Windows, к слову, также есть сервера и клиенты ssh.

Насладившись результатом трудов своих, приступим к ещё более скучной части - настройке клиента/сервера.

Конфиг клиентской части лежит в /etc/ssh/ssh_config , а серверной - /etc/ssh/sshd_config . Наиболее полным руководством по настройке является, пожалуй, страница в man - man ssh и man sshd_config, так что рекомендуем прочититать её. А в данной статье рассмотрим наиболее необходимые вещи.

Настройка

Стандартный порт ssh - 22. Его можно сменить на любой нестандартный (усложняя возможный взлом благодаря безопасности через неясность, или же для привлечения внимания потенциальных взломщиков:) - для этого расскомментируйте строчку:

#Port 22

И добавьте любой желаемый до 65535 (убедившись, что порт не конфликтует с другими сервисами командой #netstat -tupln | grep LISTEN ).

Теперь при подключении к серверу, клиенту потребуется писать с ключом:

ssh -p [порт] :

По умолчанию доступ от имени root разрешен. Крайне желательно ограничить его (и вместо этого правильно разграничить права локального пользователя с помощью sudo). Для этого найдите строчку "PermitRootLogin" и смените значение на "no". Можно также сменить на "without-password" - в таком случае, логин под рутом будет разрешен только из под машин с доверенным ключом.

Можно отключить аутентификацию по паролю и работать только с ключами - найдите строчку: "PasswordAuthentication" и смените значение на "no". Зачем? Если кто-то очень захочет получить доступ к вашей системе, то он сможет либо перебрать пароль при попытках авторизации, либо прослушать и расшифровать ваше соединение. Если отключить аутентификацию по паролю и добавить в ~/.ssh/authorized_keys на сервере публичный ключ своего, например, рабочего ноутбука, то, как мы помним, нас пустит на сервер сразу. Но как быть, если вы работаете на чужой машине и срочно нужно получить доступ на ssh-сервер, а он нас ожидаемо не пускает? Тогда можно не отключать парольную аутентификацию, а воспользоваться утилитой fail2ban. Просто установите её из вашего репозитория, после чего она применит настройки по умолчанию и, как минимум, защитит ваш ssh-канал от взлома методом перебора. Подробнее о fail2ban - http://putty.org.ru/articles/fail2ban-ssh.html.

На тот случай, если на вашем сервере хранятся ключи запуска ядерных ракет, то можно сделать как-то так:

PermitRootLogin no - запрещен логин под рутом.

PasswordAuthentication no - вход без пароля

Сгенерируем на удаленной машине длинный ключ (-t тип_шифрования, -b битовая длина):

ssh-keygen -t rsa -b 4096

С не менее сложной парольной фразой (восстановить забытый пароль, к слову, нельзя. Можно сменить его командой "ssh-keygen -p", но с вас в любом случае спросят старый). Перенесем публичный ключ удаленной локальной машины в ~/.ssh/authorized_keys сервера, и вуаля - теперь доступ можно получить с единственной машины, с помощью парольной фразы зыкрытого ключа. SSH позволяет настроить множество конфигураций безопасности и имеет для этого множество специфичных настроек - о них читайте в man.

Этим же целям служат два параметра sshd_config:

LoginGraceTime - задает время, по истечении которого будет разорвано соединение, если не произойдет аутентификация.

MaxAuthTries - задает количество неверных попыток ввода логина, по достижении которого соединение будет разорвано.

MaxSessions - количество одновременных сессий (если сервер - ваш домашний компьютер, к которому вы собираетесь подключаться из универа или с работы, то разумно будет ограничить число сессий до одной - отклоненный логин, в таком случае, станет поводом для повышения паранойи, генерации новых ключей и смены пароля). Впрочем, если вы внимательны, то могли заметить, что при каждом логине на сервер высвечивается строчка "Last Login". Помимо неё, можно добавить собственное приветственное сообщение - найдите строчку "Banner" и вместо none задайте путь к файлу с текстом, который будет прочитан и выведен при логине.

Помимо прочего, можно разрешить вход в систему только определенным пользователям, или разрешить всем, помимо определенных пользователей:

AllowUsers user1 - разрешить вход только user1.

DenyUsers user1 - разрешить всем, кроме user1.

И аналогичные параметры для доступа определенных групп - AllowGroups и DenyGroups.

Также по SSH можно передавать сеанс X11. Для этого найдите строчку "ForwardX11" и измените значение на "yes".

Аналогичную строку найдите в конфиге клиента - /etc/ssh/ssh_config, и также смените на "yes".

Теперь присоединяться к серверу по ssh нужно с аргументом -X:

ssh -X user@server>

Можно сразу запуcтить приложение при коннекте:

ssh -X user@server "приложение"

Вот так выглядит работающий GIMP в ssh-сессии:

Или можно получить вывод с веб-камеры ноутбука ничего не подозревающего пользователя:)

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

По SSH-сессии можно также копировать файлы - для этого есть простенькая утилита "scp". Передавать файлы можно прямо в сессии как с сервера на клиент:

scp user@server:/путь/к/файлу/на/сервере /куда/сохранить/на/локальной/машине

Так и с клиента на сервер:

scp путь/к/файлу/клиента user@server:/путь/на/сервере

Это достаточно удобно, если нужно скопировать текстовик или фотографию, но как быть, когда предстоит работа с многими файлами? Для этого существует удобнейшая вещь - sshfs (доступна для установки в репозиториях большинства *nix-систем).

Просто задайте путь аналогично scp:

sshfs user@server:/home/user /mnt/

И папка /home/user сервера появится в точке монтирования /mnt локальной машины!

Отмонтирование производится через umount.

И, напоследок, расскажем об одной малоизвестной фиче. Если создать файл /.ssh/config и заполнить его подобным образом:

Host [имя]

Hostname

User [имя пользователя сервера]

желаемые опции

вроде

ForwardX11 yes

Port 30000

То можно будем логиниться по:

ssh [имя]

ssh -X -p 30000 user@server

И все опции подхватятся автоматически. Таким образом, при частой аутентификации на определенном сервере, вы упростите этот процесс к делу пары мгновений.

Что ж, мы рассмотрели всё (и даже больше) что нужно знать об SSH, для его бытового использования - научились пользоваться аутентификацией по ключу, защитили сервер от взлома перебором и в целом, наложили заплатки на большинство потенциальных дыр. На самом деле, SSH может ещё много разных штук - например, туннелирование и проброс портов через ssh-сессию, но вряд ли вы, как самый обычный пользователь, когда-либо этим воспользуетесь. Дополнительные ресурсы

1. Общая информация

SSH (Secure SHell) — сетевой протокол, позволяющий соединяться с удалённым сервером и выполнять на нём команды, загружать файлы и создавать туннелирование TCP-соединений. Ключевой особенностью является шифрование передаваемой информации. По умолчанию на хостинге используется командный интерпретатор bash .

2. Информация для подключения

Информацию для подключения к серверу по SSH и SFTP вы можете получить в разделе «Веб-сервер» — «Управление доступом» — «SSH» панели управления (https://www.r01.ru , раздел «Для клиентов»).

  • Адрес сервера (хост): ssh.идентификатор.r01host.ru — указан в блоке «Доменные имена».
  • «Идентификатор» уникальное имя услуги хостинга, указан в верхней части панели управления рядом с номером договора.
  • Имя SSH-пользователя (логин): идентификатор .
  • Для получения пароля SSH-пользователя нажмите кнопку «Изменить пароль» . Новый пароль будет отображен на экране. Чтобы пароль был отправлен на ваш контактный адрес электронной почты, установите галочку «Указать пароль в письме» .

Чтобы соединиться по SSH с сервером хостинга, установите на компьютер ssh-клиент.

  • Настройка ssh-клиента PuTTY

Для загрузки файлов на хостинг используйте SFTP-клиент.

3. Работа с хостингом с помощью Midnight Commander.

Midnight Commander — двухпанельный файловый менеджер. Имеет встроенный текстовый редактор.

Для запуска Midnight Commander подключитесь к хостингу по SSH и введите команду

Основные горячие клавиши:

  • F1: Справка;
  • F3: Встроенный просмотрщик файлов;
  • F4: Встроенный текстовый редактор;
  • F5: Копировать файл;
  • F6: Переместить (переименовать) файл;
  • F8: Удалить файл;
  • F9: Вывести выпадающее меню;
  • F10: Выход из программы;
  • Tab: Переход между панелями;
  • Insert: Пометить файл для операций с несколькими файлами, например, для копирования.

4. Работа с хостингом из командной строки

4.1. Получение справочной информации

Для получения справочной информации по интересующей команде command наберите в командной строке:

для завершения работы со справкой нажмите «q».

Краткую справку по команде обычно можно получить, запустив ее с параметром --help или -h:

4.2. Перемещение по файловой системе

Вывести текущий каталог:

Перейти в домашний каталог пользователя:

Перейти в каталог tmp, размещенный в текущем каталоге:

Перейти в каталог по полному пути /home/login/sitename.ru/docs (корневой каталог сайта sitename.ru):

cd /home/login/sitename.ru/docs

Перейти в родительский каталог (на уровень выше):

Перейти в предыдущий каталог:

4.3. Просмотр содержимого каталога

Вывести содержимое текущего каталога (кроме скрытых файлов):

Вывести все содержимое текущего каталога с подробной информацией:

Вывести все содержимое каталога tmp с подробной информацией:

Вывести размер каталога tmp:

4.4. Создание и удаление файлов и каталогов

Создать новый каталог foo в текущем каталоге:

Создать структуру каталогов foo/bar/baz в текущем каталоге:

mkdir -p foo/bar/baz

Удалить каталог foo в текущем каталоге. Каталог должен быть пуст:

Удалить каталог foo со всеми файлами и подкаталогами:

Создать пустой файл foo:

Удалить файл foo:

4.5. Просмотр и редактирование содержимого файлов

Просмотреть содержимое текстового файла (лог-файла сайта) (Для выхода нажмите «q»):

less sitename.ru/logs/access_log

Открыть файл foo в текстовом редакторе:

4.6. Копирование и перемещение файлов

Копировать файл foo в файл bar:

Скопировать содержимое каталога old в каталог new:

Переименовать файл foo в файл bar:

Переместить файл foo в существующий каталог bar под именем baz:

4.7. Изменение прав доступа

Сделать файл foo исполняемым:

Сделать файл foo доступным только для чтения:

Изменение прав доступа для всех каталогов, вложенных в каталог foo на 755:

find foo -type d -exec chmod 755 {} \;

Изменение прав доступа для всех вложенных в каталог foo файлов на 644:

find foo -type f -exec chmod 644 {} \;

4.8. Управление процессами

Показать информацию о процессах в реальном времени (Для выхода нажмите «q»):

Показать подробную информацию о всех выполняющихся процессах:

Завершить работу процесса по его идентификатору процесса (PID) 1234:

Завершить работу процесса по его имени:

Перезапустить веб-сервер Apache:

~/etc/rc.d/httpd restart

Перезапустить веб-сервер Nginx:

~/etc/rc.d/nginx restart

4.9. Работа с архивами

Создать архив каталога docs:

tar -czf archive.tar.gz docs

Распаковать архив archive.tar.gz:

tar -xzf archive.tgz

Распаковать архив archive.zip:

unzip archive.zip

Распаковать архив archive.rar:

unrar x archive.rar

Распаковать архив archive.gz:

gunzip archive.gz

4.10. Поиск файлов

Найти среди файлов сайта содержащие текст «login.mysql» (адрес сервера для доступа к базе данных):

grep -R "login.mysql" sitename.ru/docs

Найти в текущем каталоге и подкаталогах файлы с именем index.php.

В этой статье мы рассмотрим современные и удобные способы работы с сервером по SSH с VPS от Infobox и облаком .

Мы расскажем не только про обычный способ подключения, но и про организацию устойчивого соединения через нестабильный интернет (например 3G модемы), а также о дополнительных утилитах, помогающих в работе по SSH.

Если вы пользователь Windows и вам нужно просто и быстро подключиться к Linux–серверу - переходите в раздел «Putty или как быстро подключиться к SSH из Windows».

Что необходимо знать для подключения по SSH

Для подключение необходимы:
  • IP адрес сервера
  • логин
  • пароль
Где взять данные для подключения к серверу VPS NG от Infobox
После заказа услуги войдите в панель управления https://panel.infobox.ru .
Выберите услугу «VPS NG» в правом верхнем углу панели управления в выпадающем списке.
Затем перейдите во вкладку «VPS».

В этом разделе вы увидите ip-адрес сервера и можете установить пароль для доступа к серверу .


Для подключения используйте имя пользователя root , ip–адрес с этой страницы и установленный пароль .
Если вы забыли пароль, нажмите на пункт «Редактировать параметры доступа», показанном на скриншоте выше.

Где взять данные для подключения к серверу VPS от Infobox
Войдите в панель управления https://panel.infobox.ru .
Выберите услугу VPS в правом верхнем углу панели управления в выпадающем списке (в названии услуга содержит имя заказанной ОС и регион размещения).

Затем перейдите во вкладку «Управление VPS».


Используйте имя пользователя root , пароль и ip–адрес сервера с этой страницы.

Где взять данные для подключения к серверу InfoboxCloud
После создания сервера данные для подключения придут к вам на электронную почту. Этого достаточно для подключения.

Если вы потеряли письмо с данными для доступа и хотите получить доступ к серверу
По-умолчанию логин администратора сервера: root

Войдите в панель управления по адресу: https://panel.infobox.ru .
Выберите услугу «Облачные серверы» в правом верхнем углу панели управления в выпадающем списке.

Выделенный IP–адрес для сервера можно посмотреть во вкладке «Облачная инфраструктура» панели управления.

Если поле "Выделенный IP адрес " пустое, значит при создании сервера вы не добавили серверу хотя бы 1 выделенный ip–адрес (и следовательно доступа через Интернет к серверу нет, есть только из локальной сети).

Чтобы добавить выделенный IP–адрес, нажмите на имя сервера.

В группе настроек «Сеть» нажмите «Настроить».


Убедитесь, что пропускная способность (скорость) сети достаточна (или поставьте больше при необходимости).
Затем нажмите «Добавить IPv4–адрес» и нажмите «Сохранить изменения».


Теперь у сервера есть выделенный IP–адрес.


Для изменения пароля доступа к серверу нажмите «Изменить», как показано на скриншоте выше. Так вы можете установить пароль для доступа к серверу.
Теперь вы знаете ip–адрес сервера , логин (root ) и пароль .

Настройка SSH–клиентов

Для Windows
Для подключения к серверу вам потребуется SSH–клиент. Если необходимо быстро подключиться - рекомендуется Putty . Если требуется работа с unix–утилитами, такими как scp, rsync и ssh-copy-id – используйте Cygwin .
Putty или как быстро подключиться к SSH из Windows
Скачайте инсталлятор Putty для Windows из раздела The latest release version и установите Putty с настройками по-умолчанию.


Запустите Putty (Пуск -> Все приложения -> PuTTY -> PuTTY).

Введите IP–адрес сервера. Убедитесь, что выбран порт 22, а тип подключения SSH и нажмите «Open».


Вам будет задан вопрос, доверяете ли вы серверу, к которому подключаетесь. Нужно ответить «Да».


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


Подключение было успешно установлено.

Cygwin или Unix–окружение на вашем Windows компьютере
Работая с Linux–серверами вам может понадобиться подобное окружение на вашем компьютере. Использовать единый набор утилит на сервере и рабочем компьютере очень удобно, поэтому обязательно попробуйте Cygwin. Linux только с первого взгляда кажется сложным. Постепенно осваивая эту ОС вы все больше будете нуждаться в Cygwin. Хорошее затягивает.

Нестабильное интернет-соединение при подключении по SSH – что делать?

Часто, работая через нестабильную сеть (например через мобильный интернет 3G/4G или различные точки доступа WiFi) соединение с SSH обрывается. Давайте посмотрим, что можно сделать на уровне клиента, чтобы предотвратить необходимость переподключения. Данные инструменты не подходят для выполнения критически важных операций на сервере (например апгрейд ОС). Для выполнения критически важных операций нужно дополнительно использовать утилиты, описанные в следующем разделе статьи. Предназначение утилит в этом разделе - более удобная работа по SSH для пользователя.
AutoSSH
AutoSSH запускает копию ssh–клиента и осуществляет мониторинг за соединением, перезапуская ssh–клиент при необходимости.

Autossh использует ssh для построения петли ssh–перенаправлений (соединение с локального компьютера на удаленный и в обратном направлении) и пересылает тестовые данные, ожидая, что они вернутся назад. Также поддерживается использование удаленного эхо-сервиса для отправки назад тестовых данных.

AutoSSH поддерживает только 3 параметра:

  • -M <порт>[: эхо-порт] - используется для указания порта мониторинга или порта мониторинга и порта эхо-сервиса. Если не указан порт эхо-сервиса, для него используется следующий по номеру порт. Например, если установлен флаг -M 20000, тестовые данные будут отправляться по порту 20000, а получаться по порту 20001. Если указать -M 0 – мониторинг соединения будет отключен и autossh будет перезапускать ssh только при выходе из ssh (можно использовать это с опциями ServerAliveInterval и ServerAliveCountMax в OpenSSH, если мониторинг в вашей ситуации не может быть использован);
  • -f - отправляет autossh в фон еще до запуска ssh (пароль в таком режиме ввести вы не сможете);
  • -V - отображает версию autossh.
Все остальные аргументы передаются как параметры ssh.

Для того, чтобы при восстановления соединения вам не пришлось вводить пароль повторно, разрешите для данного пользователя вход на сервер по ключу, как показано в разделе выше.

Установка AutoSSH в Cygwin в Windows
При использовании Cygwin в Windows введите:
apt-cyg update
apt-cyg install autossh


Теперь можно выполнить подключение к серверу:
autossh -M 20000 root@ip_адрес_сервера


Соединение успешно установлено.

В целом autossh – достаточно удобный инструмент для работы через нестабильные интернет-соединения и для организации ssh–туннелей на сервере (этот сценарий мы рассмотрим в отдельной статье). Недостаток autossh в том, что эта утилита не решает проблему, если в момент ввода команд на сети возникают значительные задержки (что в 3G сети случается). В этом случае вы будете ждать ответа от сервера на ввод каждого символа, что несколько замедляет работу. Тем не менее в обычных условиях работы autossh очень помогает поддерживать ssh–соединение.

Возможность вводить команды не дожидаясь ответа сервера решает Mosh , но совместимость этой утилиты пока сильно ограничена, а надежность невысока, поэтому пока использовать ее не рекомендуется.

Как выполнять критически важные и длительные операции на сервере: терминальные мультиплексоры

Если вы обновляете ОС, устанавливаете какое-то ПО или просто редактируете файл на сервере, после подключения через ssh или autossh не работайте напрямую. Если соединение по SSH будет разорвано - вы потеряете сессию, запущенную при подключении по SSH. Чтобы этого не произошло и при переподключении по SSH вы точно попали в продолжающуюся операцию на сервере или в открытое окно редактирования файла с того же момента, используйте на сервере терминальные мультиплексоры: GNU Screen или tmux .
GNU Screen
Изначально программа screen создавалась, чтобы запускать несколько терминальных сессий внутри одного терминала. Однако есть у screen и другое полезное свойство: возможность отсоединять виртуальные сеансы от физического терминала и подсоединять к другому. Это, в частности, позволяет запускать долгоиграющие процессы на удалённых машинах, без необходимости быть постоянно на них залогиненным.

1. Зайдите на удаленный сервер по SSH.
2. Запустите там screen
3. Вы увидите приветствие, нажмите Enter.
4. Теперь вы можете делать что угодно, как будто вы просто подключены к серверу по SSH (например запустите любой долгий процесс).
5. Вы можете отсоединить сессию, нажав CTRL + a, затем d. Можете даже завершить подключение по SSH к серверу.
6. Чтобы вернуться в сессию, переподключитесь по SSH (или это сделает autossh) и введите screen -r
Вы вернетесь в запущенную сессию, а в ней продолжается запущенный вами процесс ранее. Более подробно терминальные мультиплексоры мы разберем в последующих статьях.

Заключение

В этой статье мы попытались рассказать основы, необходимые для удобной работы по SSH из различных ОС. Конечно это далеко не все, что возможно, но хорошая база для начала. Если вы нашли ошибку в статье, считаете, что нужно добавить что-то важное или просто у вас есть вопрос -

Хостинг с ssh доступом встречается наверное не так часто, по крайней мере, по моему опыту. Мой последний хостинг SSH поддерживает, и я решил испробовать его в деле, к тому же у меня для этого был веский повод. Дело в том, что мой текущий хостинг не показывает детально размер файлов.

Через FTP клиент это тоже не посмотреть, а мне это очень необходимо, так как место на хостинге быстро закончилось и мне нужно удалить весь мусор, чтобы не покупать дополнительные мегабайты и не платить лишнее. А ещё недавно мои сайты заразили и я и без ssh доступа это было бы невозможно.

Знал бы, что мой хостинг не поддерживает такой простой функции, сто раз подумал, перейти на него или нет. Но хостинг отзывы имел хорошие и я купил на нём место сразу на два года. Но так как у него есть ssh, то вопрос думаю решаемый. Итак, хостинг в SSH, как его можно использовать?

Что такое хостинг с ssh доступом?

Но сначала скажу о том, что такое SSH, так как возможно не все знают, что это за зверь. А если коротко, то согласно Википедии это:

SSH (англ. Secure SHell - «безопасная оболочка») - сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

С ssh можно работать прямо через терминал при помощи команд Linux. Подключиться к серверу очень легко, нужно набрать команду в таком формате:

Ssh имя_пользователя@адрес_сервера

Как видите, всё очень просто. Попробую подключиться через ssh к своему хостингу. Но не тут то было, хостинг упорно не хотел меня принимать по этому протоколу. Я написал в службу поддержки и теперь жду ответа.

Ну а пока я вам расскажу, как удобно можно подключиться по ssh через файловый менеджер Nautilus. Подключившись к нему по SSH вы будете работать с файлами, которые лежат на хостинге, как будто они лежат на вашем компьютере. Открываем Nautilus и нажимаем Ctrl + L, чтобы в адресной строке можно было написать путь к серверу ssh:

Sftp://[email protected]

Потом вас попросят ввести пароль и вы увидите в файловом менеджере все свои файлы. Вот такие преимущества есть у хостинга с ssh.

Поэтому выбирая хостинг обращайте на это внимание. Мой хостинг IHOR дает доступ к SSH и поэтому я пользуюсь им уже несколько лет...

СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Payoneer - Самая популярная в мире платежная система для фрилансеров. Выдает карты, находится в США.

2. EpayService - Американская платежная система, очень популярна во многих странах, бесплатно дает карту MasterCard в EVRO для жителей СНГ и Европы.

3. Skrill - Единственная платежная система которая работает с криптовалютами и при этом выпускает бесплатные банковские карты MasterCard.

4. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

5. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.


Домен RU - 99 руб
Домен РФ - 99 руб

Клиент SSH — это необходимая утилита при использовании SSH-соединения между двумя машинами. Она предназначена для входа в операционную систему удаленного компьютера и выполнения в ней команд. Клиент устанавливается на локальную машину пользователя. Он должен пройти аутентификацию на сервере, и только после этого начинается обслуживание. Клиент может быть реализован для работы в терминале или иметь графический интерфейс настройки.

Что такое SSH?

Переводится дословно как «безопасная оболочка». В использовании SSH — это с помощью которого производится безопасное управление операционной системой удаленного узла в сети. Обеспечивает защищенное соединение, аутентификацию и передачу данных с одного хоста на другой благодаря шифрованию трафика, проходящего через него.

Он позволяет создавать шифрованные туннели для безопасной передачи других сетевых протоколов через незащищенную сеть, например, Интернет. Часто его используют для перенаправления портов одного компьютера на порты другого.

Начало SSH было положено Тату Илёненом из Финляндии в 1995 году, который задействовал его как более конфиденциальный протокол. Эта версия была названа SSH-1. На данный момент практически нигде не используется.

В 1996 году была разработана усовершенствованная версия SSH-2. Она несовместима с SSH-1, более защищенная и имеет расширенный список алгоритмов шифрования. Сейчас под SSH понимается именно версия SSH-2. С 2006 года протокол признан интернет-стандартом ассоциацией IETF.

Существует две основных реализации SSH. Одна из них проприетарная, которая разрабатывается SSH Communications Security. Вторая - OpenSSH, созданная под руководством Тео де Раадта как свободная открытая альтернатива первой. Является самой распространенной и включена в поставку большинства Unix-подобных систем.

Что такое клиент SSH и сервер SSH

Подключение по протоколу SSH реализуется с помощью двух основных компонентов: клиента и сервера.

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

Сервер SSH слушает сетевые подключения клиентов и при получении запроса на коннект производит необходимые действия для авторизации. При удачном прохождении запускает установленную для удаленного клиента службу.

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

Стандарт SSH включает в себя три протокола:

  • Протокол транспортного уровня - гарантирует аутентификацию сервера, секретность и целостность. Обеспечивает сжатие данных. Работает поверх TCP/IP.
  • Протокол аутентификации — исполняет аутентификацию клиента для сервера. Действует поверх уровня транспортного протокола.
  • Протокол соединения — представляет зашифрованный канал в виде мультиплексированного канала из нескольких логических, используемых для разных служб. Работает поверх канала аутентификации.

Повышение безопасности гарантируется аутентификацией клиента для сервера, к которому обращается клиент ssh и аутентификацией сервера клиентом. Происходит аутентификация обеих сторон.

Клиент шлет запрос в первый раз, когда устанавливается безопасное соединение транспортного уровня. Второй запрос направляется после завершения аутентификации SSH-клиента.

Реализация OpenSSH

OpenSSH — это открытая реализация команды OpenBSD. Является самой распространенной версией благодаря свободному распространению.

Пакет OpenSSH включает набор таких инструментов:

  • SSHD — серверная часть.
  • SSH — клиентская часть.
  • SCP — утилита для защищенного копирования файлов.
  • SSH-keygen — генерирует открытые ключи (RSA, DSA и другие) для компьютеров и пользователей.
  • SSH-keyscan — собирает публичные ключи в сети.
  • SSH-agent — хранит личные RSA ключи для последующей авторизации с публичными ключами.
  • SSH-add — добавляет новые личные ключи агенту SSH-agent.
  • SFTP-server — SFTP сервер.
  • SFTP — утилита для безопасного копирования файлов по FTP.

OpenSSH включен в поставку из коробки для большинства Unix-подобных систем. Самые распространенными считаются Linux, Open (Free, Net) BSD, Solaris, HP-UX, Irix, MacOS X и другие.

Активная разработка ведется в реализации OpenSSH for Windows, которая доступна для скачивания насайте. Она позволяет создавать SSH-сервер в системах семейства Windows, имеет клиент SSH для подключения. OpenSSH for Windows включен в поставку CygWin.

Наиболее популярными среди пользователей являются дистрибутивы на базе ядра Linux. В дальнейшем все примеры использования SSH будут подразумеваться в настройке OpenSSH. Для наглядности работы в Linux будет настроен SSH-клиент для Ubuntu, Windows и Mac OS X.

Установка и настройка openssh-server

Существует множество вариантов конфигурации OpenSSH -server. Настройка клиента должна производиться исходя из конфига сервера. В этом разделе приведен пример сервера SSH, установленного на Ubuntu Server Edition. При последующих описаниях настройки клиентов будет использоваться конфигурация этого сервера.

1. Есть два способа установки OpenSSH -server:

1.1. Выбрать установку пакета OpenSSH -server сразу же в процессе разворачивания Ubuntu Server/

1.2. Скачать и установить из репозитория, выполнив команду:

2. Ознакомиться со значениями конфигурация сервера SSHD по умолчанию в файле /etc/ssh/sshd_config можно командой:

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

4. В настройках по умолчанию установлен 22. Для безопасности рекомендуется заменять его нестандартным значением, например, 5754. Изменить директиву Port можно командой:

5. Сохраните файл/etc/ssh/sshd_config и перезапустите SSHD:

Сервер установлен и настроен. Теперь он прослушивает порт 5754. По умолчанию получить доступ может любой пользователь системы с правами на вход. Аутентификация производится с помощью пароля или ключей DSA, RSA, ed25519 и др.

Кросплатформенный OpenSSH-client для терминала. SSH клиент для Linux

Ранее говорилось, что самой часто используемой реализацией протокола SSH является OpenSSH, который по умолчанию поставляется с большинством сборок дистрибутивов Linux. В некоторых случаях OpenSSH можно скачать с репозиториев для данного дистрибутива.

В составе пакетов OpenSSH-клиент реализован в виде программы SSH, которая запускается одноименной командой. Настройка и управление клиентом производится через терминал, он не имеет графического интерфейса. Считается самой простой и удобной версией.

Установка и настройка OpenSSH-client на Ubuntu

На удаленной машине имеется установленный и сконфигурированный OpenSSH-server. Задача состоит в том, чтобы получить к нему доступ с локального компьютера, на котором установлена Ubuntu.

1. В Ubuntu по умолчанию не добавлен дистрибутив OpenSSH-client, поэтому установить его необходимо командой:

2. После она вызывается командой SSH из терминала без Root.

3. В случае если используется аутентификация пользователей по паролю:

1) подключение производится командой:

2) после ввода команды необходимо нажать Enter - появится запрос на ввод пароля; требуется ввести пароль от учетной записи удаленной машины (следует быть внимательным, так как для безопасности ввод пароля никак не отображается);

3) после правильного ввода пароля появляется окно терминала удаленного сервера с приветствием; теперь можно выполнять необходимые команды.

1) при необходимости сгенерировать открытый и закрытый ключи SSH можно из OpenSSH-client:

2) по умолчанию публичный ключ сохраняется в файл /home/user/.ssh/id_dsa.pub, а закрытый в /home/user/.ssh/id_dsa;

3) сгенерированный публичный ключ необходимо скопировать на удаленную машину и добавить его к авторизации /home/user/.ssh/authorized_keys командой:

Теперь пользователь может идентифицироваться на SSH-сервере без ввода пароля.

Установка и настройка OpenSSH для Cygwin Terminal на Windows

Установка Cygwin производится запуском файла Cygwin.exe, который скачивается с официального сайта.

Cygwin — это сборка множества разных пакетов. Для работы с удаленным терминалом требуется только OpenSSH. Найти его можно с помощью поиска в самом Cygwin.

После установки пакета нужно запустить Cygwin Terminal и ввести команду:

После чего нажать Enter. Появится запрос на ввод пароля. После прохождения аутентификации появляется терминал удаленного сервера с приветствием пользователя.

Синтаксис точно такой же, как и в OpenSSH-client, реализованном для Linux.

Кроссплатформенный SSH-клиент с графическим интерфейсом PuTTY

Putty — графический клиент SSH для удаленного администрирования, включающий в себя поддержку протокола SSH. Программа распространяется с открытым кодом и абсолютно бесплатная.

Изначально выпускался только для OS Windows, но позже клиент был портирован для Linux, входит в репозитории практически всех популярных дистрибутивов.

Активно разрабатывается для работы в Mac OS X.

Окно настройки PuTTY выглядит одинаково во всех операционных системах. Разница существует только в способах установки. Поэтому сначала будут приведены способы установки для трех операционных систем, а затем - параметры настройки PuTTY.

Установка PuTTY Linux Ubuntu

1. Установить PuTTY можно командой:

2. Запуск выполняется командой putty из терминала или кликом мыши из меню:

3. Открывается окно настроек клиента, где необходимо прописать параметры соединения.

Установка PuTTY для Windows

Для установки потребуется скачать файл putty.exe, сохранить в удобное место, например, на рабочий стол. Программа запускается двумя кликами левой кнопки мыши.

PuTTY — SSH-клиент для Mac. Установка и запуск GUI-версии

На момент написания статьи PuTTY не был адекватно портирован для работы в Mac OS X. Проблемы возникали на компиляции той части, которая отвечает за графический интерфейс.

Для установки следует выполнить некоторые предварительные работы.

1. Установить Xcode.

Пакет утилит и программы от Apple для разработки и сборки приложений под Mac OS X.

С версии Mac OS Lion необходимо поставить «Command Line Tools for Xcode» с сайта Apple Developer.

После установки требуется принять соглашение о лицензии:

2. Установить Xquartz.

Это реализация сервера X.Org X Window System (X11) для Mac OS X. Требуется для GUI-версии PuTTY, написанного на GTK+. Установить можно с официального сайта. После установки потребуется релогин.

3. Установить Homebrew.

4. Установка Putty выполняется командой:

Процесс может занять больше получаса, так как будет установлено множество зависимостей вроде Glib/GTK+/Pango/Cairo.

5. Создание файла запуска Putty.app.

Необходимо запустить Automator.app. В типе документа выбрать «программа», в действиях нужно выбрать «запустить shell-скрипт», в поле ввода прописать путь до исполняемого файла «/user/local/bin/putty», сохранить как «putty.app», указав формат файла «программа», в директорию «программы». При желании стандартную иконку можно заменить.

Настройка SSH клиента PuTTY

Процесс настройки графического клиента SSH PuTTY выглядит одинаково во всех операционных системах. Внешний вид слегка отличается в зависимости от оформления рабочего окружения.

Для подключения к удаленной машине по SSH требуется запустить PuTTY. В появившемся окне программы необходимо установить параметры:

Connection Type — тип соединения — устанавливается SSH.

Host Name (or IP-adress) — имя хоста, или IP-адрес — здесь указывается IP-адрес удаленного сервера, доменное имя или адрес в интернете. В приведенном примере указан IP-адрес 192.168.128.3

Port — прослушиваемый порт — на сервере, который был приведен в качестве примера, настроен порт 5754. Его и указываем.

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

В случае необходимости аутентификации клиента парой ключей потребуется утилита puttygen.exe, которая запускается в ОС Windows. PuTTY-Gen генерирует свою пару ключей public и private.

Публичный ключ необходимо добавить на сервер, он генерируется в стандарте SSH. Добавить ключ можно аналогично, через OpenSSH в терминале или с помощью PuTTY, пройдя первую авторизацию логин-пароль.

Приватный ключ генерируется формата.ppk и добавляется в клиент. Слева в дереве нужно найти SSH, развернуть список, найти Auth и в этом параметре в поле «Private key file for Authentication» выбрать ключ.

После этих манипуляций пользователь может проходить аутентификацию на сервере без ввода пароля.

На данный момент PuTTY считается универсальным клиентом SSH с графическим интерфейсом. Сторонние разработчики Gao-Feng создали SSH-клиент для Android, как мобильную версию PuTTY.

Лучший SSH-клиент

До сих пор не существует единого мнения о том, какой SSH-клиент лучше использовать. Системные администраторы подбирают утилиты исходя из собственных потребностей.

Как правило, пользователи *Unix-систем склоняются к использованию стандартного SSH из пакета OpenSSH. Он обладает понятным универсальным синтаксисом и доступен напрямую из терминала. Для работы с дополнительными инструментами вроде защищенного копирования файлов (SCP) не требуется устанавливать дополнительные программы. Все необходимое включено в OpenSSH.

Поклонники графического интерфейса, которые обычно работают в операционных системах Windows, используют PuTTY. Считается, что это лучший SSH-клиент для Windows. Он имеет весь необходимый набор инструментов для туннелирования, копирования файлов и так далее, пусть для этого потребуется скачивание дополнительных модулей.