Подключение между двумя компьютерами в среде Linux осуществляется через SSH. Это сетевой протокол прикладного уровня, производящий удаленное управление ОС и туннелирование TCP-соединений. Его использование обусловлено простотой и надежностью, что позволяет выполнять безопасное подключение к серверу.
Соединение по SSH дает возможность выполнять любые команды на удаленном компьютере так, будто мы находимся прямо перед ним. Такой процесс обычно осуществляется через специальные утилиты, особенно если нужно получить доступ к Linux через Windows. Одной из программ таких является PuTTY, о которой речь пойдет в сегодняшней статье. Как ее настроить и подключиться через нее к серверу – читайте далее.
Где скачать PuTTY
PuTTY распространяется в бесплатном доступе на официальном сайте разработчика. Переходим по ссылке и загружаем подходящую версию приложения под разрядность операционной системы.
Скачиваем инсталлятор и запускаем его. Перед нами отобразится окно приветствия – кликаем по кнопке «Next» до конечного пункта. По пути мы также можем изменить местоположение программы, а также добавить или исключить некоторые функции PuTTY.
После успешной установки в меню «Пуск» появится новый ярлык под названием PuTTY – с ним мы и будем работать в последующих разделах.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Как настроить PuTTY
В настройках программы нет ничего сложного. Давайте откроем программу и посмотрим, что в ней есть. После запуска перед нами отобразится окно конфигурации приложения, где слева находятся различные категории, а справа – их настройки.
Программа включает в себя 4 основных раздела:
- Session — основная вкладка, предназначенная для подключения к удаленному компьютеру. Здесь вводятся параметры подключения, порт, адрес, а также вносятся так называемые пресеты, которыми можно воспользоваться, чтобы не вводить каждый раз данные для входа. Достаточно один раз прописать настройки сессии, сохранить ее и использовать при следующем запуске программы.
- Terminal — необходима для включения или отключения возможностей терминала.
- Window — здесь производятся все настройки интерфейса: внешний вид окна, цвет, шрифт и кодировка.
- Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации и других значений.
Нам потребуется всего две вкладки: Session и SSH. Первым делом перейдем ко второй и убедимся, что версия протокола стоит в значении «2». Как правило, сейчас используется понятие SSH-2, так как первая версия практически не применяется из-за существенных недостатков, например, ошибки в схеме обеспечения безопасности.
Вернемся к разделу Session, где находятся основные параметры, которые потребуются нам для подключения к серверу по SSH. Давайте немного остановимся и поговорим о них:
- Первый блок включает в себя основные параметры, необходимые для подключения: окно ввода IP-адреса и порта, строку с выбором типа подключения.
- Следующий блок предназначен для создания пресетов, которые можно использовать для быстрого подключения к удаленному компьютеру. В строку «Saved Sessions» вводится название сессии, оно сохраняется с помощью кнопки «Save». Чтобы воспользоваться сохраненным пресетом, достаточно его загрузить с помощью кнопки «Load».
- Последний блок – параметры закрытия окна при выходе. Доступные значения: always, never, only on clean exit.
Как видите, в настройках PuTTY нет ничего сложного. Теперь давайте перейдем к подключению по протоколу SSH.
Как подключиться по SSH
Нам понадобится IP-адрес удаленного компьютера или сервера, к которому мы хотим подключиться. Последующие действия мы будем рассматривать на примере VDS от Timeweb – все шаги аналогичны любому хостингу, поэтому у вас не должно возникнуть никаких вопросов. Если же подключаетесь не к серверу, а к компьютеру, то можете сразу переходить ко второму пункту.
Подключаемся по SSH:
- Первым делом узнаем, какой используется адрес у VDS – для этого переходим в личный кабинет хостинга и заходим в список подключенных серверов. На Timeweb адрес можно узнать в специально отведенном для этого столбце.
- Переходим к PuTTY – запускаем программу и открываем раздел «Session». Там вводим адрес удаленного компьютера, указываем порт 22 и в нижней части приложения кликаем по кнопке «Open».
- При успешном вводе данных перед нами отобразится консольное окно, в котором нужно ввести логин и пароль для подключения к серверу. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.
- Если логин и пароль были введены корректно, то мы увидим окно приветствия.
Таким образом мы подключились к ПК на операционной системе Linux. Здесь мы можем вводить команды и удаленно взаимодействовать с компьютером.
Основные команды PuTTY
Как говорилось ранее, для использования удаленного компьютера нам необходимо вводить различный набор команд. Их огромное множество, но для первоначального изучения достаточно знать лишь их небольшую часть.
ls — предназначена для вывода файлов, содержит в себе набор команд:
- ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
- ls -lha — также выводит файлы, но показывает размер файла в байтах;
- ls -lha | less — используется для постраничного просмотра документов.
cd — необходима для перемещения между директориями, например, cd [путь] перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd ~ открывает корневую папку.
echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».
sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.
df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df [опции устройство].
mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv [опции исходные_файлы куда].
rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm [опции файл(ы)].
cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp [опции файл-источник файл-приемник].
mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.
cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat [опции файл].
mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.
chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod [ключи установка_прав имя_файла].
pwd — при первом запуске терминала мы оказываемся в домашнем каталоге пользователя. Если вдруг каталог был изменен, то проверить это можно с помощью данной команды.
touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch [имя файла].
man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.
locate — предназначена для поиска файла в системе Linux.
Это была лишь небольшая часть команд, которые можно использовать при подключении по SSH. Если вы только начинаете изучать основы администрирования серверов, то этого списка будет достаточно.
Как подключиться к серверу без пароля
Не всегда удобно каждый раз вводить пароль для входа на удаленное устройство. Комфортнее, когда вход выполняется автоматически и без лишних усилий. В PuTTY существует такой способ – использование авторизации по ключу SSH. Настроить его можно следующим образом:
- Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
- Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
- Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
- Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
- Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
- Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.
Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.
Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов. Спасибо за внимание!
В нашем справочнике есть мануал, рассказывающий, как добавить SSH-ключ в личном кабинете RUVDS. Также у нас есть инструкция по генерации SSH-ключа при помощи PuTTY и добавлении его на сервер через личный кабинет RUVDS. В настоящем руководстве разберём, как подключиться к VPS через PuTTY с использованием SSH-ключей, созданных в командной строке.
Создание SSH-ключей и добавление их в личном кабинете RUVDS
Во-первых, на локальной рабочей станции, с которой вы планируете подключаться к удалённому Linux-серверу, запустите командную строку и создайте SSH-ключ. Именно этот ключ мы будем использовать, чтобы подключиться к виртуальному серверу через PuTTY. Например, так выглядит команда для создания SSH-ключа длиной 4096 бит с использованием алгоритма RSA:
ssh-keygen -t rsa -b 4096
Вывод данной команды будет выглядеть примерно следующим образом:
Затем необходимо добавить созданный ключ в личный кабинет RUVDS. По умолчанию файлы созданных публичного и секретного ключей находятся в каталоге .ssh
, расположенном в профиле локального пользователя. Поэтому перейдите в данный каталог, откройте файл публичного ключа id_rsa.pub
любым удобным текстовым редактором и скопируйте его содержимое в буфер обмена. После чего на сайте RUVDS перейдите в Настройки
➝ Управление SSH-ключами
и кликните кнопку Добавить ключ
.
В открывшемся окне в поле Публичный ключ
вставьте из буфера обмена содержимое файла id_rsa.pub
, а в строке Название
укажите имя, под которым ключ будет сохранён в личном кабинете. После чего нажмите Добавить ключ
.
Таким образом, созданный на локальном компьютере SSH-ключ будет сохранён в списке ключей на сайте RUVDS.
Создание и первоначальная настройка сервера
Следующий этап — это создание виртуального сервера. Подключение к нему будет осуществляться при помощи SSH-ключа, добавленного в личном кабинете RUVDS. Для создания сервера на сайте RUVDS перейдите во вкладку Заказать
, выберите удовлетворяющую ваши требования конфигурацию, укажите одну из доступных Linux-систем и в разделе SSH-ключи активируйте ранее добавленный ключ.
После оплаты заказываемого сервера и установки на него операционной системы вы уже сможете подключиться к нему по SSH с использованием беспарольной аутентификации. То есть при регистрации на удалённой системе будет применяться ваш SSH-ключ вместо пароля. Следует учитывать, что на данном этапе такое подключение пока возможно только из командной строки и только при помощи учётной записи root
. Таким образом, для того, чтобы осуществить соединение с сервером, откройте командную строку и выполните команду вида:
ssh root@X.X.X.X
Здесь X.X.X.X
— IP-адрес вашего виртуального выделенного сервера.
Теперь разберём, как перенести SSH-ключ другому пользователю, чтобы не использовать при подключении к Linux-машине учётную запись root
. Для этого сначала создайте нового пользователя. В нашем примере он будет называться your-user
:
# adduser your-user
Затем наделите созданного пользователя полномочиями администратора, чтобы вы могли использовать его вместо root
-а. С этой целью необходимо включить вашу учётную запись в группу sudo
. Например, команда ниже используется для этого в операционных системах Debian и Ubuntu:
# usermod -aG sudo your-user
А при помощи такой команды вы сможете сделать то же самое в CentOS:
# usermod -aG wheel your-user
Также, если вы используете CentOS, установите своему пользователю пароль. Дело в том, что в данной операционной системе по умолчанию пользователь не имеет пароля при создании:
# passwd your-user
Перенос публичного ключа в профиль нового пользователя
После выполнения вышеописанных команд в текущем сеансе командной строки переключитесь на пользовательский аккаунт вашей новой учётной записи:
# su - your-user
Теперь находясь в домашней директории вашего пользователя создайте каталог .ssh
:
$ cd ~
$ mkdir -p ~/.ssh
После чего завершите текущую сессию своего пользователя, чтобы вернуться в сеанс root
-а. Для этого используйте комбинацию клавиш Ctrl
D
или команду:
$ exit
Здесь переместите файл публичного ключа из профиля суперпользователя в профиль вашей учётной записи. Обратите внимание, файл публичного ключа authorized_keys
должен находиться в каталоге .ssh
:
# mv ~/.ssh/authorized_keys /home/your-user/.ssh/
Затем снова подключитесь к системе под учётной записью вашего пользователя. Это необходимо сделать для корректной настройки прав доступа к директории, в которой находится SSH-ключ:
# su - your-user
Подключившись, удалите все права для группы и других пользователей для всех файлов и каталогов внутри директории .ssh
:
$ sudo chmod -R go= ~/.ssh
А также измените на текущего пользователя владельца и группу всех файлов и каталогов внутри директории .ssh
:
$ sudo chown -R $USER:$USER ~/.ssh
После чего отключитесь от сервера, чтобы проверить настроенное подключение.
На этом настройка удалённого Linux-сервера для подключения к нему с использованием SSH-ключей завершена. Чтобы подключиться к вашему VPS, откройте командную строку и выполните там следующую команду, заменив your-user
на имя вашего пользователя, а X.X.X.X
— на IP-адрес вашего сервера:
ssh your-user@X.X.X.X
Подключение через PuTTY с использованием SSH-ключей
Теперь рассмотрим, как подключиться к виртуальному Linux-серверу не из командной строки, а при помощи PuTTY.
Сначала запустите PuTTYgen — утилиту для создания и управления криптографическими ключами, используемую в пакетах программного обеспечения PuTTY. Для её запуска используйте соответствующий ярлык из главного меню:
В PuTTYgen перейдите Conversions
➝ Import key
:
По умолчанию созданные SSH-ключи располагаются в каталоге .ssh
, который находится в профиле вашего пользователя на локальном компьютере. Поэтому откройте каталог .ssh
и выберите файл секретного ключа. Как правило, такой файл носит имя id_rsa
:
После чего необходимо сохранить секретный ключ в формате, используемом PuTTY. Для этого нажмите Save private key
:
Затем выберите каталог, в который вы сохраните файл секретного ключа, и укажите имя данного файла. После чего нажмите Save
:
Далее закройте PuTTYgen и запустите непосредственно PuTTY:
В окне PuTTY укажите IP-адрес вашего сервера в строке Host Name
и введите название нового подключения в строке Saved Sessions
. После чего нажмите Save
. Таким образом вы сохраните текущее подключение к вашему VPS.
Далее перейдите в Connection
➝ SSH
➝ Auth
➝ Credentials
и в строке Private key file for authentication
нажмите кнопку Browse
:
В открывшемся окне перейдите в каталог, содержащий сохранённый ранее файл секретного ключа, выберите данный файл и нажмите Open
:
Затем снова вернитесь во вкладку Sessions
и сохраните внесённое в сессию изменение при помощи кнопки Save
:
Теперь всё готово к подключению при помощи созданной сессии. Для соединения с сервером кликните Open
и в открывшемся окне терминала введите имя вашего пользователя. После нажатия Enter
PuTTY откроет сессию вашего пользователя с использованием SSH-ключей — публичного, находящегося на удалённом сервере, и секретного, сохранённого на локальной рабочей станции.
При этом пароль учётной записи в данном случае не будет использован при аутентификации на виртуальном Linux-сервере.
Таким образом, мы разобрали, как подключиться через PuTTY к виртуальной Linux-машине при помощи SSH-ключей, сгенерированных с использованием командной строки.
В этом уроке мы научимся подключаться к терминалу Ubuntu через протокол SSH с помощью программы PuTTY на Windows. Для начала давайте разберемся, что такое SSH и зачем нам нужен PuTTY для подключения по SSH к серверам.
⇓ Запись видеоурока во ВКонтакте ⇓
⇓ Запись видеоурока на RuTuBe ⇓
⇓ Запись видеоурока на YouTuBe ⇓
SSH (Secure Shell – Безопасная оболочка) – протокол позволяющий производить удаленное управление операционной системой и осуществлять передачу данных, таких как файлы, аудио и видео потоки. Преимущества данного протокола в том, что он шифрует весь передаваемый трафик, включая пароли.
PuTTY – программа, позволяющая подключаться к системам через протоколы удаленного доступа, такие как SSH, Telnet и другие. Однако, судя из нашей задачи мы будем её использовать для работы именно с через протокол SSH.
Установка и настройка сервера SSH
В процессе установки операционной системы мы указывали, что нам необходимо установить SSH сервер. Если вы этого не сделали, то запустите авторизуйтесь в консоли и запустите команду:
sudo apt install openssh-server
Как вы видите, система выдает нам сообщение, что сервер openssh уже установлен в системе.
Вообще, что это за команда и каков синтаксис построения команд в Linux я расскажу более подробно в следующем видео.
Установка и работа в программе PuTTY
Скачиваем программу PuTTY с официального сайта https://putty.org.ru \ Скачать \ Обычная версия: putty-0.73-ru-17.zip \ Разархивируем и устанавливаем.
У меня она уже установлена, поэтому я её запускаю и попадаю в основной раздел, с которым мы будем работать, это раздел Session (сессии), т.е. подключения к удаленным системам.
У вас здесь будет только пункт Default Settings (Настройки по умолчанию) \ Вводим ip адрес нашего сервера, 192.168.88.50 \ Port: 22 \ Connect type: SSH \ Сразу сохраним параметры подключения к данному серверу, чтобы не вводить их каждый раз \ Save sessions \ Ubunbu-srv \ Save. Теперь подключение с данным именем появилось у нас в списке сохраненных сеансов.
Если мы выберем профиль сеанса и нажмем на кнопку Load, то загрузим его настройки. Это очень удобно, если вы администрируете несколько серверов, все их настройки можно добавить в разные профили сессий.
Если вы забыли адрес сервера, то в консоли вводим команду:
ip ad
и видим настройки сетевых подключений присутствующих в системе
Нажимаем Open, чтобы попытаться подключиться к нашему серверу через протокол защищенной оболочки SSH \ Вводим логин: it-skills \ Вводим пароль: ***** \
После успешного подключения мы получаем сообщение добро пожаловать в Ubuntu 22.04.2, ссылки на полезные ресурсы, дата и время на сервере, сводную информацию о загруженности сервера.
Строка it-skills@ubuntu-srv: говорит нам о том, что мы подключены к серверу ubuntu-srv под пользователем it-skills
Давайте перейдем в корневой каталог и отобразим его содержимое:
cd /
ls -la
Опять же, все эти команды мы будем изучать в следующих уроках, но если вкратце, то команда cd сменяет каталог, / — это корневой каталог, т.е. самый верхний, как например диск С в системах Windows, вот только в Linux корневой каталог один, независимо от количества жестких дисков в системе, а в Windows корневой каталог есть в каждом диске, т.е. папка верхнего уровня.
Команда ls -la выводит содержимое каталога, в котором мы сейчас находимся, т.е. содержимое корневого каталога.
Достоинства использования PuTTY
Давайте разберемся, а в чем еще, помимо удаленного подключения к консоли сервера, удобство работы через программу PuTTY? Ведь в нашем случае, у нас сервер установлен в качестве виртуального сервера, и мы можем им управлять через VMWare!
А удобство в следующем:
— удаленное подключение – как минимум мы поняли, как подключаться к серверу через SSH, хотя, сам по себе именно данный способ не доработан, так как с точки зрения безопасности тут нужно еще запретить прямое подключение из-под пользователя root, разрешить подключение только по сертификату и сменить порт по умолчанию. Мы этого делать не будем, так как в рамках нашего домашнего полигона в этом необходимости нет, однако, если вы выпускаете сервер в мир, т.е. он становится доступен через сеть интернет, то данные настройки должны быть выполнены обязательно.
— наличие скрула — если мы перейдем в каталог etc и просмотрим его содержимое то увидим большое количество файлов и папок
cd /etc/
ll
Через терминал на сервере мы не можем увидеть все содержимое, так как нам доступен только конец вывода на экран, а вверх мы не модем пролистать.
Если мы сделаем тоже самое через программу PuTTY, то мышкой можем пролистать весь вывод, так как здесь есть скрулл.
— копирование и вставка – через программу PuTTY очень удобно копировать и вставлять нужное содержимое. К примеру, мы можем легко выделить весь вывод, скопировать его Ctrl+C и вставить в какой-нибудь документ (Выполнить \ notepad \ Вставить). Как правило, это полезно, когда вам необходимо отправить какую-нибудь информацию техническому специалисту, если у вас появляются какие-то ошибки на сервере. Ну или вы пишите скрипт в одну строку и добавляете в него какие-то правки, довели его до правильной работы, потом просто выделили, скопировали и вставили себе в документ или отправили кому-нибудь. Т.е. не нужно заново его вводить вручную.
Так же, если вы столкнулись с каким-нибудь текстом написанном на английском языке, вы можете легко его скопировать, вставить в переводчик и понять, что от вас требуется.
Так же полезен и обратный процесс, это вставка, т.е. допустим вы подключились к какому-то серверу и у вас есть уже наработанный список команд, позволяющий легко и быстро настроить сервер. Чтобы их не вводить вручную, мы просто копируем из нужного документа, и нажатием на правую кнопку мыши ПКМ содержимое вставляется в терминал
К примеру, эта же команда sudo apt install openssh-server по установке сервера ssh.
Вообще это очень полезно при изучении различных инструкций, так как вы можете просто через Copy Paste быстро настроить нужную службу.
— размер шрифта – допустим мне так же удобно менять размер шрифта.
К примеру в виртуальной машине он такой, однако когда я подключался к своему рабочему компьютеру с ноутбука, а у меня тут расширение намного больше чем на ноутбуке, то этот шрифт становится еще меньше и приходится вглядываться в то, что написано в терминале.
Однако, через PuTTY мы можем изменить размер шрифта, цвет и фон шрифта на тот, который вам удобнее (ПКМ по окну программы \ Change Settings «Изменить настройки» \ Windows \ Appearance \ Font settings \ Change \ 16 \ ОК \ Apply )
Еще видел, что некоторые любят менять фон на белый, а текст делать черным. Это дело конечно каждого, но лично я бы не привыкал к такому формату, так как лучше все же работать в стандартном режиме.
PuTTY — популярный клиент для удаленного подключения.
Скачать его можно на официальном сайте PuTTY. Для подключения по SSH с помощью PuTTY воспользуйтесь инструкцией:
Генерация SSH-ключей
-
Откройте приложение PuTTYgen
-
В открывшемся окне можно задать тип ключа шифрования и битность, либо оставить настройки по умолчанию.
-
Нажмите кнопку «generate», чтобы начать генерацию ключа.
Хаотично двигайте мышкой по области окна программы. Это поможет сгенерировать случайные значения в ключевой паре.
-
После генерации станет доступен созданный ключ:
В этом окне можно задать дополнительные настройки:
— подписать комментарий к паре ключей (в поле «Key comment:») — удобно, чтобы отличать ключи, если вы используете несколько пар
— задать для ключа пароль (в поле «Key passphrase:» и «Confim passphrase:»). Это обеспечит дополнительную безопасность — даже в случае краже ключа сервер будет недоступен без ввода пароля. Пароль недоступен для восстановления в случае утери. -
Cохраните приватный и публичный ключи. Публичный ключ устанавливается на сервер, к которому нужно выполнить подключении — по аналогии с замком. Приватный ключ используется с подключающейся стороны.
Кнопка «Save private key» сохраняет приватный ключ в формате .ppk. Для использования на виртуальных серверах, сохраните ключ под текстом «Public key for pasting into OpenSSH authorized_keys file:»
Конвертация ключа PuTTY
PuTTy использует собственный формат ключей. Поэтому если вы сгенерировали приватный ключ в личном кабинете Airnode (при помощи OpenStack) или в другой программе, а подключение к виртуальному серверу хотите делать через Putty, необходимо конвертировать приватный ключ.
Для этого:
-
Откройте приложение «PuTTYgen».
-
Нажмите «Conversions» и выберите «Import key».
-
Выберите фаил с ключом и откройте его.
-
После этого сохраните преобразованный приватный ключ с помощью кнопки «Save private key».
Также доступна обратная процедура — если вы захотите сменить SSH-агент с PuTTy на любой другой, нужно сконвертировать ключ в формат OpenSSH.
Для этого используйте меню «Conversions / Import key»:
Как подключиться к серверу с помощью PuTTY
-
Запустите PuTTY (putty.exe)
-
Настройте новую сессию: в поле «Host Name (or IP address)» введите IP-адрес удаленного сервера, или его имя. Укажите порт службы SSH вашего сервера в поле “Port” (по умолчанию используется порт 22).
-
Выберем ключи для авторизации. Для этого перейдите в раздел «SSH/Auth».Нажмите «Browse» и выберите приватный ключ, сохранённый ранее.
-
Cохраним настройки сессии, чтобы не задавать их заново при повторных подключениях. Перейдите обратно в раздел «Session». В поле «Saved Session» задайте новое имя для сессии и нажмите «Save».
-
Нажмите «Open», чтобы подключиться к северу.
-
Может открыться предупреждение системы безопасности. Если вы доверяете хосту, нажмите «Да».
-
Откроется командная строка. В ней введите имя пользователя и, если потребуется, пароль.
-
Если вы подключаетесь к серверу, созданному в дата-центре Airnode на основе готового образы, то в качестве имени пользователя используйте имя операционной системы.Например: debian, centos, ubuntu. Пароль при этом не требуется.
-
Теперь соединение с севером установлено:
Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров307K
Программистов, сисадминов, devops’ов, тестировщиков часто объединяет использование некоторых общих технологий. Например, возможность иметь удалённый доступ к серверу пригодилось бы любому из указанной выше анекдотичной компании. Поэтому в этой статье мы рассмотрим основы работы с протоколом SSH на базовом уровня (без генерации ключей, подписей, мам, пап и кредитов). «Продвинутое» использование посмотрим уже отдельно, в следующий раз. Материал подготовил Макс, автор YouTube-канала PyLounge. Поехали!
Введение
SSH (Secure SHell — защищенная оболочка) — сетевой протокол прикладного уровня, предназначенный для безопасного удаленного доступа к различным системам (Linux, Windows, Mac).
Данный протокол шифрует всю передаваемую информацию по сети. По умолчанию, используется 22-й порт. В основном он нужен для удаленного управления данными пользователя на сервере, запуска служебных команд, работы в консольном режиме с базами данных.
Эта служба была создана в качестве замены не зашифрованному Telnet и использует криптографические техники, чтобы обеспечить, что всё сообщение между сервером и пользователем было зашифровано.
Чтобы установить SSH-соединение, необходимы два компонента: SSH-сервер и SSH-клиент. Сервер прослушивает определенный порт (по умолчанию это порт 22) и при успешной аутентификации дает доступ пользователю. Все команды, которые используются на SSH-клиенте, отправляются через защищенный канал связи на SSH-сервер, на котором они выполняются и откуда отправляют результат работы обратно клиенту.
SSH-сервер
Устанавливается на управляемой операционной системе и принимает входящие подключения от клиентских машин, проверяя соединение одним из способов:
-
по IP-адресу клиента, что не слишком безопасно из-за риска подмены;
-
по публичному ключу клиента и имени пользователя. Нужно создать приватный (закрытый) и публичный (открытый) ключ. Зашифровав информацию одним ключом, можно расшифровать ее только другим;
-
по паролю клиента, который передается в зашифрованном виде. Это один из наиболее распространенных вариантов. Вводить его нужно при каждом подключении.
Платные и бесплатные SSH-серверы есть для всех распространенных ОС:
-
BSD — OpenSSH;
-
Linux — dropbear, lsh-server, openssh-server;
-
Windows — freeSSHd, copssh, WinSSHD, OpenSSH и т. д.
SSH-клиент
Используется для входа на удаленный сервер и выполнения команд. Через клиент выполняется управление удаленным компьютером.
SSH-клиенты разработаны для всех ОС. Имеют платные и бесплатные версии:
-
Linux/BSD — openssh-client, putty, ssh, Vinagre;
-
Windows — PuTTY, SecureCRT, ShellGuard;
-
Android — connectBot.
Встроенный SSH-клиент Windows, основанный на OpenSSH, предустановлен в ОС, начиная с Windows 10 1809.
Установка OpenSSH на Ubuntu
Установка с помощью менеджера пакетов apt-get:
sudo apt-get install openssh-server
Проверка SELinux
Security Enhanced Linux, или SELinux – это усовершенствованный механизм контроля доступа, встроенный в большинство современных дистрибутивов Linux. Первоначально он был разработан Агентством национальной безопасности США для защиты компьютерных систем от вторжения злоумышленников и взлома. SELinux также может помешать работе с ssh. Поэтому необходимо убедиться, что он отключен, либо отключить его.
Устанавливаем доп. инструменты для работы с сетью и настройками безопасности:
sudo apt-get install policycoreutils
sudo apt-get install net-tools
Проверяем статус SELinux. Состояние должно быть disable
.
sestatus
Подключение к виртуальной машине с типом подключения NAT
Если виртуальная машина использует тип сетевого подключения NAT, то первоначально необходимо настроить проброс портов. Пробросим порт хоста 2222 (или любой свободный) на гостевой порт виртуальной машины номер 22 (порт ssh по умолчанию).
После этого мы можем подключиться из Windows к нашей виртуальной машине.
Подключение по ssh через PuTTY
Т.к. в качестве сетевого подключения у виртуальной машины используется NAT, при подключении мы будем указывать петлевой адрес localhost (127.0.0.1) c портом, на который был назначен проброс.
После этого вводим имя пользователя (пользователь должен существовать в linux!!!) и пароль от этого пользователя.
Подключение по ssh через Командную строку Windows (cmd)
Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.
В общем видео подключение по ssh имеет вид:
ssh имя_пользователя@ip_адрес_компьютера_к_которому_подключаемся -p порт
Если для подключения используется стандартный порт ssh — 22, то порт можно не указывать.
В открывшемся окне вводим команду:
ssh student@127.0.0.1 -p 2222
Вводим пароль пользователя. Всё. Вы великолепны!
Подключение к виртуальной машине с типом подключение Сетевой мост
С типом подключения Сетевой мост необходимо выдать статический ip для Linux системы. Дальнейшее подключение будет уже по этому, выданному ip, а не через localhost.
Установка статического ip
Начиная с выпуска Ubuntu 17.10 NetPlan теперь это инструмент настройки сети по умолчанию для управления настройками сети, заменяющий файл конфигурации /etc/network/interfaces
, который использовался в предыдущих версиях.
Файлы конфигурации для Netplan находятся в каталоге /etc/netplan
и написаны на языке YAML. В этом каталоге вы найдете файлы конфигурации YAML.
Откроем конфигурационный файл:
sudo nano /etc/netplan/*.yaml
Отредактируем конфигурационный файл:
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: false
addresses: [10.40.0.224/24]
gateway4: 10.40.0.1
nameservers:
addresses: [10.2.0.8, 10.2.0.3]
Здесь:
-
ethernets — указывает на проводное Ethernet подключение;
-
enp0s3 — имя сетевого интерфейса (можно узнать командой ifconfig);
-
dhcp4 — автоматическая выдача ipv4-адреса с помощью службы dhcp (для ipv6 указывать dhcp6);
-
addresses — ip-адрес и маска сети, которые назначаются компьютеру;
-
gateway4 — шлюз по умолчанию;
-
nameservers — список dns-серверов.
Посмотреть настройки можно с хостовой машины на Windows с помощью команды ipconfig /all.
Чтобы применить изменения и перезагрузить сеть, вводим команду:
sudo netplan apply
Подключение по ssh
Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.
В открывшемся окне вводим команду:
ssh student@10.40.0.224
Вводим пароль пользователя. Всё. Вы великолепны (2)!
Заключение
Несмотря на высокую защиту протокола, использование стандартного порта значительно повышает риск взлома сервера. Например, это можно сделать при помощи brute-force (атака полным перебором). Порт 22 — открытый, поэтому злоумышленнику нужно только подобрать логин и пароль к серверу. Это сложно, но возможно. Чтобы максимально ограничить доступ к серверу для злоумышленников (настроить брандмауэр, iptables), можно сменить SSH-порты.
Ресурсы, которые использовал
-
Как включить SSH в Ubuntu 20.04 (Routerus):https://routerus.com/how-to-enable-ssh-on-ubuntu-20-04/
-
Коротко об SSH / Хабр: https://habr.com/ru/sandbox/166705/
-
Что такое SSH (блог REG.RU): https://help.reg.ru/support/hosting/dostupy-i-podklyucheniye-panel-upravleniya-ftp-ssh/chto-takoye-ssh