SSH — это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.
Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.
Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.
Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.
Как подключиться по SSH
Для подключения по SSH нам необходимо знать такие данные:
- ip адрес сервера, к которому мы собираемся подключится;
- порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
- имя и пароль пользователя на удаленном сервере.
Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.
1. Подключение через SSH в Linux
В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:
$ ssh имя_пользователя@айпи_адрес
Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:
$ ssh имя_пользователя@айпи_адрес -p порт
Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:
ssh sergiy@192.168.1.2
Или, с нестандартным портом:
ssh sergiy@192.168.1.2 -p 2223
Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:
Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:
Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:
Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:
Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:
sudo ufw allow 22/tcp
А в CentOS/Fedora:
firewall-cmd --permanent --zone=public --add-port=22/tcp
Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.
Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.
2. Подключение через SSH в Windows
Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:
Затем выберите Управление дополнительными компонентами:
Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:
Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.
После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:
Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:
ssh имя_пользователя@айпи_адрес -p порт
Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:
ssh pi@192.168.1.5
Утилита предложит добавить устройство в список известных:
Затем предложит ввести пароль:
Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.
Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.
Выводы
В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Безлимитные тарифы интернета с высокой скоростью соединения упростили администрирование компьютеров. Сегодня все чаще помощь пользователям оказывается удаленно. Это удобно, ведь не надо тратить время на поездки и возможность подключиться есть практически круглосуточно.
Сегодня поговорим об удаленном подключении к Ubuntu из ОС Windows.
Зачем удаленно подключаться из Windows к Ubuntu
Не так важно, где находится удаленный компьютер – в соседней комнате или в другом регионе. Интернет убирает подобные ограничения, главное – чтобы связь оставалась стабильной на все время настройки. Это одинаково относится к машинам, работающим хоть на операционной системе Windows, хоть на Ubuntu. Последние используются, например, для развертывания сервера CS или Minecraft.
Причины, по которым требуется удаленное подключение:
- ручной запуск обновлений на компьютере с Ubuntu;
- настройка системы без подключения локального монитора, клавиатуры;
- работа с машиной, расположенной по другому адресу.
Пользователю доступно три варианта коннекта с компьютеров, работающих на ОС Windows. Выбор зависит от удобства и предпочтений: SSH через приложение PuTTY, встроенная поддержка RDP и виртуальная сеть VNC (понадобится предварительная настройка клиента). В любом случае перед работами понадобится выяснить IP-адрес компьютера, к которому предстоит подключаться.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Как выяснить IP-адрес компьютера с установленной ОС Ubuntu
Если есть физический доступ к компьютеру с установленной Ubuntu, на нем открывается терминал (комбинация клавиш Ctrl+Alt+T) и вводится команда ifconfig. В отображенном перечне данных имеет значение строка, начинающаяся с inet addr. Если используется подключение через Wi-Fi, то рядом будет его маркер в виде «wlan0». При проводном соединении фраза будет заменена на «eth0». Рядом отображается актуальный IP-адрес машины.
Второй способ заключается в применении функций графического интерфейса. Последовательность действий: найти значок подключения на панели, кликнуть правой кнопкой мышки, выбрать пункт «Сведения о подключении». Там и указан постоянный IP-адрес компьютера. Если доступа к нему нет, то можно выяснить данные через маршрутизатор. В панели управления отображаются активные пользователи вместе с их «контактами».
Подключение к Linux через SSH
Перед подключением на компьютер с Windows устанавливается приложение PuTTY. Это популярный инструмент для организации SSH-соединения, которое предоставит удаленный доступ к командной строке Ubuntu. Важно понимать, что этот режим требует определенного опыта в управлении, ведь здесь нет привычной мыши и «окошек», а все команды передаются в текстовом виде. Отчеты предоставляются в таком же виде.
По умолчанию возможность коннекта через SSH в Ubuntu отключена. Так что предварительно эту систему требуется настроить. Активация функции выполняется вводом команды sudo apt install openssh-server (в той же консоли, где ранее был взят IP-адрес). Логин и пароль подключения будут те же, что используются при входе в операционную систему.
Из-за неудобства управления в текстовой среде этот вариант востребован для удаленной активации более удобных инструментов. Например, тех же протоколов RDP или VNC. В них также пригодится IP-адрес, поэтому получить минимальные навыки работы в консоли все равно рекомендуется. Это упростит решаемые задачи, если по каким-то причинам не удается соединение в других режимах.
Подключение из Windows через RDP
Способ подключения через службу Remote Desktop Protocol (RDP) распространен при работе с машинами на платформе Windows. Популярность инструмента объясняется просто – его поддержка встроена во все виды и версии операционных систем. Все, что понадобится для подключения, уже известно: это IP-адрес, логин и пароль от Ubuntu. Запускается утилита через поиск, называется она «Подключение к рабочему столу».
На компьютере-клиенте требуется установка приложения xrdp.
- Необходимо открыть окно термина нажатием комбинации клавиш Ctrl+Alt+T.
- Ввести текстовую команду sudo apt install xrdp и нажать «Ввод».
- Провести активацию программы командой sudo systemctl enable xrdp.
После установки надо ввести на компьютере-сервере данные доступа и нажать кнопку «Подключить». Если поставить галочку «Разрешить мне сохранять учетные данные», последующие входы будут выполняться без дополнительных вопросов. Но в первый раз пароль всегда вводится вручную. При желании создается отдельный конфигурационный файл (востребовано, когда много компьютеров с удаленным управлением).
После подключения пользователь видит рабочий стол компьютера на Ubuntu. Работа с его окнами не отличается от локального управления – функционируют все настроенные горячие клавиши, перетаскивание мышью. В некоторых версиях Ubuntu, например, 18.04 LTS, RDP не работает, пока не выйдешь из текущего пользователя. Подобные фишки обычно известны системным администраторам.
Подключение через VNC
Есть другой вариант удаленного рабочего стола – сеть Virtual Network Computing (VNC). Она тоже требует предварительной настройки обеих машин. Так, на компьютер с Ubuntu инсталлируется ПО, открывающее доступ к управлению.
Последовательность действий:
- Открыть окно терминала.
- Ввести команду sudo apt update.
- Установить сервер: sudo apt install tightvncserver.
- Активировать его: sudo tightvncserver.
Система предложит ввести пароль для подключения. Он понадобится при активации удаленного соединения, поэтому стоит записать (запомнить) внесенные данные.
На этом все! TightVNC Server готов к работе, остается следом настроить компьютер на Windows. Программа доступна на официальном сайте разработчика в двух версиях: 32 и 64-бит.
После инсталляции и запуска достаточно ввести IP-адрес хоста и пароль доступа, введенный после активации сервера на Ubuntu. Схема работы VNC аналогична предыдущему примеру: пользователь видит перед собой удаленный рабочий стол и управляет функциями операционной системы, как будто сидит за компьютером локально.
Содержание
- Что такое SSH?
- Способ 1. Встроенный SSH-клиент в Windows 10
- Способ 2: использование SSH в подсистеме Windows для Linux
- Способ 3: использовать Putty
- Завершение
Что такое SSH?
SSH означает Secure Shell – протокол, который был изобретен в 1995 году для замены небезопасного Telnet (телекоммуникационная сеть).
Теперь системный администратор является основным способом безопасного входа на удаленные серверы Linux через общедоступный Интернет.
Хотя он выглядит и действует так же, как Telnet, все коммуникации по протоколу SSH зашифрованы для предотвращения перехвата пакетов.
Если вы используете компьютер с Linux или Mac, SSH-клиент установлен по умолчанию.
Вы можете открыть окно терминала и запустить команду ssh, как показано ниже, для подключения к удаленному серверу Linux.
ssh username@itsecforu.local
Теперь давайте обсудим, как использовать SSH в Windows.
Способ 1. Встроенный SSH-клиент в Windows 10
Группа разработчиков Microsoft PowerShell решила перенести OpenSSH (и клиент, и сервер) на Windows в 2015 году.
Наконец, он появился в Windows 10 Fall Creator Update в 2017 году и по умолчанию включена в обновлении от апреля 2018 года.
Чтобы использовать клиент OpenSSH в Windows 10, просто откройте окно PowerShell или окно командной строки и выполните команду ssh.
Например, если я хочу подключиться к своему рабочему столу Ubuntu в локальной сети, я бы запустил.
ssh cryptoparty@192.168.0.101
cryptoparty – это имя пользователя на моем рабочем столе Ubuntu, а 192.168.0.101 – это частный IP-адрес моего рабочего стола Ubuntu.
При первом подключении к компьютеру с Linux вам будет предложено принять ключ хоста.
Затем введите свой пароль для входа.
После входа в систему вы можете запускать команды Linux для выполнения административных задач.
Чтобы выйти из окна Linux, выполните команду выхода или нажмите Ctrl + D.
Чтобы выйти из окна Linux, выполните команду exit или нажмите Ctrl + D.
Способ 2: использование SSH в подсистеме Windows для Linux
Подсистема Windows для Linux (WSL) позволяет запускать встроенные средства командной строки Linux непосредственно в Windows 10.
Если вы являетесь системным администратором, WSL, вероятно, является излишним просто для использования SSH, поскольку он установит и запустит дистрибутив Linux (без графического интерфейса) на рабочем столе Windows 10.
Kali Linux в подсистеме Windows для Linux
WSL создан для веб-разработчиков или тех, кому нужно работать над проектами с открытым исходным кодом.
Вы можете использовать не только SSH, но и другие инструменты командной строки Linux (Bash, sed, awk и т. д.).
Откройте Microsoft Store и введите WSL в поле поиска. Выберите «Запустить Linux на Windows» и установите дистрибутив Linux по вашему выбору.
Например, я выбрал Ubuntu и нажимаю кнопку Get, чтобы установить ее.
После установки дистрибутива Linux откройте панель управления и выберите «Программы» -> «Включить или отключить функции Windows».
Установите флажок Подсистема Windows для Linux, чтобы включить эту функцию.
(Вам может потребоваться перезагрузить компьютер с Windows, чтобы изменения вступили в силу.)
После этого вы можете использовать команду ssh, как показано ниже, для подключения к серверу Linux или ПК, на котором работает SSH-сервер.
ssh itsecforu@192.168.0.101
Способ 3: использовать Putty
Putty – известный и самый популярный SSH-клиент в Windows до появления клиента Windows OpenSSH и подсистемы Windows для Linux.
Чтобы использовать SSH с Putty, вам необходимо скачать программу Putty с официального сайта и установить ее.
Запустите Putty из меню «Пуск». Затем введите IP-адрес или имя хоста окна Linux и нажмите кнопку «Open», чтобы подключиться к этом серверу.
Примите ключ хоста, и вам будет предложено ввести имя пользователя и пароль.
См. также:
- Как использовать команды SSH в командной строке Windows 10
- 6 команд для очистки терминала Linux
Завершение
Я надеюсь, что эта статья помогла вам использовать SSH в Windows.
Как всегда, если вы нашли эту статью полезной, поделитесь ей, чтобы получить больше советов и рекомендаций. Берегите себя 🙂
Всем привет, это моя первая статья на Хабре (да и первая в принципе). Я не в коем случае не претендую сейчас на звание специалиста и т.п. В общем, как и понятно из названия это мой первый опыт, так что, конечно, будут и ошибки. Я рад любой критике. Это статья нужна так же в основном и мне, для того, чтобы научиться писать статьи, так как скоро дипломная, а это как не как опыт(хотя и немного не то) была в случае чего шпаргалка и мне не приходилось бы снова искать по всему интернету всю эту информацию. Ну со вступлением все.
Начну с того, что скажу зачем мне вообще это понадобилось. А все просто, интересно. Я захотел создать десктопное приложение с базой данных, но я так уже делал и я захотел немного усложнить задачу, так как мне, в случае успеха, придется устанавливать эту программу для корпоративных целей, то базу данных надо переместить на сервер. Так что я взял старенький ноутбук и решил из него попробовать сделать сервер для базы данных. И столкнулся со множеством проблем, решение которых заняло у меня дня так три(если не учитывать то время, которое я пытался провозиться еще и с VirtualBox дня 2), хотя для некоторых может это и будет казаться легкотней, но для меня это было интересно и познавательно, ладно, начнем.
-
Установка Ubuntu Server.
Процесс установки Ubuntu Server, легко найти в интернете, например https://info-comp.ru/drugieopersistemi/644-install-linux-ubuntu-server-18-04.html. Хоть Ubuntu Server там и 18.04 я думаю эту руководство подойдет и для версии 20.04.
-
Настройка сети.
-
Ну перейдем к теме настройки сети. Цель настроить wifi. В интернете полно руководств по настройки проводного подключения, но мне так и не удалось найти руководство по настройке wifi, после которого бы у меня он заработал. wifi мне нужен в основном для того, чтобы во время разработки не быть привязанным к проводной сети. Но для того, чтобы его настроить все таки сначала понадобится проводная сеть. В принципе по умолчанию для проводной сети ip адрес определяется по DHCP, так что достаточно просто вставить Enternet-кабель и интернет заработает. Если это не так, то моя статья по этому поводу не поможет(уж извините). Дальше нам понадобится установить пакет net-tools. Для этого выполните команду:
sudo apt-get install net-tools
Теперь нам надо узнать названия сетевых интерфейсов. Для этого выполним следующую команду
ifconfig -a
Нас интересует интерфейс wlp2s0 у вас он может называть по другому, например wlan0. Он отвечает за беспроводное соединение. Теперь, когда мы узнали название сетевого интерфейса, можем переходить к настройке wifi. Мои проблемы с настройкой wifi были лишь из-за того, что в версиях Ubuntu Server, начиная с 18.04 настройка сети происходит с помощью утилиты Netplan. Конечно в сети полно информации про нее и как ей пользоваться, мне например очень помогла статья https://fomich0ff.github.io/2019/05/05/wifi-on-rpi-ubuntu-server/. Тут все очень кратко расписано. Но даже после этих статей у меня так и не заработал wifi. Ну начнем. Для начало надо попасть в файл конфигурации, для этого набираем команду:
sudo nano /etc/netplan/*.yaml
Появиться окно с настройками. Далее я приведу уже свои настройки(естественно скрыв SSID и password).
Для проверки нашего конфигурационного файла вводим команду:
sudo netplan --debug generate
И для того, чтобы настройки вступили в силу, вводим команду:
sudo netplan --debug apply
Но это еще не все, даже после таких действий у меня так и не заработал wifi. Нам надо скачать еще один пакет, который называется wpasupplicant, он позволяет работать с сетями, которые имеют метод шифрования WPA, WPA2 и т.д. Может это все и выглядит банально, но у меня ушло много времени, чтобы найти ошибку. Вводим следующую команду:
sudo apt-get install wpasupplicant
После этого у меня сразу заработал wifi(если не заработал, то можно попробовать перезагрузить систему). Теперь, когда появился wifi, можно перейти к настройке ssh.
-
-
Настройка SSH
-
Настроим конфигурационный файл, для этого выполним команду:
sudo nano /etc/ssh/sshd_config
Откроется примерно такой файл:
# — закомментированные поля. Описание всех полей можно найти в интернете. Я лично раскомментировал следующие:
Port — по умолчанию идет 22, но для безопасности лучше поменять, я поставил 2023.
Protocol — протокол SSH. Первый протокол плохо защищен, так что ставим 2.
PermitRootLogin — если поля имеет значение no, то при подключение через SSH невозможно будет войти за root.
PubkeyAuthentication — разрешает/запрещает входить по публичному ключу(расм. далее)
AuthorizedKeysFile — показывает файлы с публичными ключами
PasswordAuthentication — если поле имеет значение yes, то возможно будет войти с помощью пароля пользователя, иначе можно будет войти только по ключу(если PubkeyAuthentication yes)
Все остальные поля я оставил как они и были(там были и другие раскомментированные поля)
После настройки необходимо перезагрузить ssh, для этого выполним команду:
sudo systemctl restart ssh
Дальше во всех статьях, которые мне попадались, говорили, что можно смело подключаться по SSH, но как я не пытался в ответ я получал только connection refused(соединение отклонено). Кстати, чтобы подключиться необходимо ввести команду:
ssh -p port username@hostname
port — порт подключения, в моем случае 2023
username — имя пользователя(в моем случае vavilonbase, например)
hostname — имя хоста(к этому вернемся далее)
В качестве hostname я сначала использовал localhost, но все мои попытки не увенчались успехом, я долго мучался с этим подключение, пока наконец не нашел ответ, а именно, то что у меня были закрыты порты на роутере, открыть их мне помогла статья https://lumpics.ru/how-to-open-ports-on-router/.
Я лишь покажу конечный результат переадресации портов:
После этого у меня все заработало. Теперь, в моем случае, для подключения по ssh нужно ввести команду:
ssh -p 2023 vavilonbase@192.168.1.18
И после этого ввести пароль, все готово.
При первом подключение может возникнуть сообщение:
Картинка с сайта: https://losst.ru/kak-podklyuchitsya-po-ssh
Здесь надо написать yes и нажать Enter.
-
-
SSH-ключ
Входит по паролю конечно хорошо, но еще лучше входить без пароля, но защищено, а именно по SSH ключу. В интернете полно руководств как сгенерировать SSH-ключ на Linux и перебросить его на ubuntu-server, например эта статья: https://losst.ru/avtorizatsiya-po-klyuchu-ssh
Но в интернете мне было сложно найти точное описание как же это сделать в Windows(а у меня основная машина WIndows). Так что я покажу все это на примере WIndows. Начнем.
Для начало надо установить на Windows клиент OpenSSH(кстати, его же надо установить и для подключения по ssh по паролю).
Для этого надо сделать все как на картинках:
В этой вкладке смотрим, если ли клиент OpenSSH
Если нет такого клиента, то жмем добавить компонент, находим клиент OpenSSH и устанавливаем его.
Теперь, когда у нас есть клиент OpenSSH перейдем к генерации ключа.
Для генерации ключа вводим в терминале Windows команду:
ssh-keygen
Дальше вас спросят следующие данные:
Куда сохранять эти ключи, обычно меняют путь, который предлагается по умолчанию(если хотите оставить путь по умолчанию, просто нажмите Enter)
Дальше, в случае, если вы уже генерировали ключи, спросят хотите ли вы их перезаписать
Потом попросят ввести фразу и повторить ее. Это нужно для дополнительной защите, это фразу вы будете вводить каждый раз при подключение по SSH, чтобы не вводить ее, нужно просто нажать Enter ничего не вводя.
Все ключ сгенерирован, дальше то с чем у меня по началу возникали проблемы. А именно, для клиента OpenSSH Windows нет команды sshcopyid, благодаря которой происходила отправка ключа на сервер в WIndows. Я лично использовал для этих целей команду scp.
Теперь, что нужно, чтобы ее использовать, если в случае команды sshcopyid она автоматически создавала все нужные файлы на сервере, то сейчас нам придется создать их вручную. Для этого заходим на сервер и вводим следующую команду:
sudo mkdir .ssh
То есть создаем папку .ssh(если она еще не создана)
Теперь надо отправить наш публичный ключ на сервер, для этого выясним адрес публичного ключа, он был показан во время его генерации:
Теперь выполним следующую команду:
scp -P 2023 C:\Users\Vavil/.ssh/id_rsa.pub vavilonbase@192.168.1.18:~/.ssh
Посмотрим, что здесь что:
-P — стоит заметить, что P — большая, это важно, тут мы вводим порт.
Дальше идет адрес публичного ключа в Windows(где его взять см. выше)
Дальше идет имя пользователя и имя хоста(прямо как при подключение по SSH), после этого идет двоеточие и папка куда надо отправить этот ключ на сервере(в ту самую папку, которую мы создали).
Но это отнюдь не все, если вспомнить, то когда мы настраивали sshdconfig, то мы как раз таки указывали какие файлы у нас отвечают за ключ, а именно ~/.ssh/authorizedkeys, то есть нам надо переименовать файл. Переходим на сервер и вводим следующие команды:
sudo cd .ssh sudo mv id_rsa.pub authorized_keys sudo systemctl restart ssh
Все готово. Пробуем войти и радуемся.
-
Настройка БД
Ну перейдем к тому, для чего все это и было затеяно. В качестве БД у меня PostgreSQL.
Для установки БД можно воспользоваться этой статьей: https://losst.ru/ustanovka-postgresql-ubuntu-16-04. Дальше создадим пользователя app и тестовую базу данных appdb. Выполним команды:
CREATE USER app PASSWORD 'passwordOfApp';
CREATE DATABASE appdb OWNER app;
Когда база данных создана, хотелось бы подключится к ней с другого компьютера, для этого настроим конфигурационные файлы postgresql.conf и pg_hba.conf. Для их редактирования выполним команды:
sudo nano /etc/postgresql/12/main/postgresql.conf
sudo nano /etc/postgresql/12/main/pg_hba.conf
В первом файле нужно отредактировать следующие параметры:
listen_addresses = ‘localhost’ поменять на listen_addresses = ‘*’ и для безопасности изменить порт по умолчанию(5432).
Во втором файле необходимо изменить следующую строку(см. картинку)
А именно адрес в ней, в моем случае у меня адрес компьютера статический и я могу записать его сюда. Вы так же можете сделать его статическим(см. статью про открытие портов, там до переадресации делали адрес сервера статическим). То есть здесь мы указываем адреса, который могут подключится к базе данных, в случае, если такой не один, просто копируем всю строку и меняем адрес на новый. После этого перезагружаем сервер postgresql. Выполним команду:
sudo service postgresql restart
Попробуем подключиться к базе данных через небольшое приложение на C#.
То есть тут мы запрашиваем у сервера его версию, получаем следующий ответ:
Как видно сервер вернул ответ с версией, а значит все настроено верно.
Ну на этом все. Как я и сказал, я в Linux полный новичок, так что если есть какие-либо советы я только рад. Это статья служит скорее как шпаргалка мне, так как мне это и правда был интересный опыт и я бы хотел запечатлить его в виде такой вот статьи. Спасибо всем за внимание.
Содержание
- Применение и возможности PuTTY
- Установка на Windows
- Работа с программой
- Распространенные ошибки
PuTTY — программа, которая позволяет установить соединение с удаленным сервером или компьютером. Программу можно также применять для реализации следующих целей:
- удаленного администрирования;
- взаимодействия с VPS-серверами.
- работы с Telnet-терминалами;
- настройки маршрутизаторов через RS-232;
Работать рекомендуется через SSH, поскольку он обеспечивает высокий уровень безопасности соединения с другим компьютером. PuTTY поддерживает Telnet, реализующий текстовый интерфейс в терминале (только для отображения текстовой информации в режиме консоли).
Возможности программы
- Сохранение информации и конфигурационных параметров для многократного применения.
- Работа с SSH-ключами.
- Поддержка разных версий SSH-протокола.
- Встроенные клиенты SCP и SFTP, используемые для различных операций с файлами. Возможности первого ограничиваются только функцией копирования.
- Перенаправление портов через протокол SSH.
- Поддержка xterm, ECMA-48 и VT-102.
- Возможность соединения по IPv6.
- Работа с алгоритмами шифрования.
- Аутентификация через ключ, который расположен на удаленной машине.
- Соединение через proxy.
- Использование порта RS-232.
Установка на Windows
- Программа PuTTY для Windows 10 скачивается с официального сайта.
- Далее нужно перейти по ссылке, скачать пакет для архитектуры x86 или x64, а затем запустить установку.
- После установки необходимо проверить программу на работоспособность, запустив исполняемый файл на Windows.
Работа с программой
Интерфейс
Пользоваться программой PuTTY удобно, т. к. она имеет понятный интерфейс. Чтобы ее настроить, нужно знать назначение основных ее вкладок.
- Session позволяет задать параметры соединения, чтобы подключиться к серверу (IP-адрес, протокол и порт), а также сохранить настройки для многократного использования.
- Terminal: режим активации или деактивации терминала.
- Window: установка кодировки и изменение интерфейса.
- Connection отвечает за выбор шифрования, аутентификацию без ввода пароля и т. д.
Соединение с удаленным сервером
Принцип подключения не зависит от операционной системы. Это могут быть разные версии Windows (7, 10) или популярные дистрибутивы на основе Linux — Ubuntu, CentOS, Debian.
Подключиться по SSH через PuTTY просто. Для этого нужно следовать приведенной ниже инструкции.
- Ввести IP-адрес или имя хоста, к которому необходимо подключиться.
- Указать порт (по умолчанию везде 22).
- Выбрать тип соединения SSH.
- Ввести название подключения и сохранить его, нажав кнопку «Save».
- Активировать соединение, нажав на «Open».
- Указать данные для авторизации (логин и пароль).
После этого работа с терминалом осуществляется, как на локальном компьютере. Чтобы узнать информацию о версии Ubuntu, нужно ввести команду:
sudo lsb_release -a.
Для удобства можно создать жесткую ссылку (ярлык) на программу для быстрого запуска.
Использование SSH-ключей
Чтобы постоянно не вводить данные авторизации для соединения с удаленным сервером, нужно установить ключ SSH-типа.
Для примера, продемонстрируем ниже, как подключиться через PuTTY, установленного в Windows 10, при помощи SSH-ключа к серверу на Ubuntu.
Шаг №1
Для начала, нужно выполнить ряд действий на компьютере с ОС Windows.
- Установить программу для генерации ключа «Putty Key Generator» и запустить ее.
- Задать параметр «RSA» и активировать процесс кнопкой «Generate». Нужно постоянно вводить указателем мыши в зоне окна выполнения операции для успешной генерации.
- Сохранить private key, для чего скопировать текст из консоли в документ. Предварительно нужно указать тип файла «.ppk».
- Затем сохраняем public key. Для этого необходимо скопировать и вставить текст из буфера обмена в любой пустой текстовый файл.
- Свернуть программу.
Шаг №2
Далее необходимо перенести SSH-ключ на сервер Ubuntu, выполнив перечисленные ниже действия.
- Запустить программу PuTTY.
- Подключиться к серверу, используя его параметры для доступа (хост, порт и SSH-протокол).
- Командой «mkdir .ssh» создаем папку «.ssh». Затем командой «ll» проверяем наличие папки.
- Прописываем права доступа для папки .ssh только для владельца, командой «сhmod 700 .ssh/».
- При помощи команды «cd .ssh» переходим в системную папку «./ssh».
- Создаем файл «authorized_keys», используя редактор nano, командой:
touch authorized_keys
- Прописываем права доступа для файла «authorized_keys», только для владельца, командой:
сhmod 600 authorized_keys
- Редактируем файл с помощью команды:
cat >> authorized_keys << EOF»
- Добавляем ваш public key и заканчиваем редактирование файла командой «EOF».
Шаг №3
Возвращаемся к программе PuTTY на Windows 10.
- Переходим в программу.
- Добавляем данные для подключения.
- Переходим во вкладку «Connection → SSH → Auth». Выбираем для аутентификации сохраненный файл «.ppk».
- Активируем соединение при помощи нажатия «Open».
Работа с файлами
Программа позволяет делать операции с файлами. Чтобы закачать файл на сервер, находящийся под управлением Linux Ubuntu (с компьютера на ОС Windows), нужно действовать по приведенной ниже инструкции.
- Сохранить тестовый файл «mydoc.txt» на диске C:\ вместе с исполняемым файлом для безопасного копирования — pscp.exe.
- Открыть командную строку Windows: «Win+R → cmd → Enter».
- Зайти в папку с программой pscp.exe, для чего ввести команду: «cd /d c:\Putty\pscp.exe»*, где «c:\Putty\» — путь к файлу pscp.exe.
* Путь к файлу «c:\Putty\pscp.exe» приведен в качестве примера.
- Далее можно приступать непосредственно к работе с файлом. Например, передать файл «mydoc.txt» на сервер «192.241.7.16»* со стандартным портом и пользователем Ubuntu74 в папку «root» можно командой:
* IP-адрес «192.241.7.16» приведен только в качестве примера.
pscp.exe mydoc.txt Ubuntu74@192.241.7.16:/root/
Если для соединения используется нестандартный порт (например, 25), то команда примет вид:
pscp.exe -P 25 mydoc.txt Ubuntu74@192.241.7.16:/root/
- Ввести пароль для Ubuntu74.
Скачать файл через PuTTY с сервера «192.241.7.16» в текущую папку можно с помощью команды:
pscp.exe Ubuntu@192.241.7.16:/root/mydoc.txt
Чтобы объединить файлы, нужно их загрузить на удаленную машину, а затем выполнить команду «sudo cat mydoc1.txt mydoc2.txt > mydoc.txt».
Распространенные ошибки
Проблемы с аутентификацией
PuTTY выдает при подключении сообщение: «Access denied». Это указывает на отказ в доступе, причиной которого являются ошибки при вводе логина или пароля.
Если соединение с удаленным сервером происходит при помощи SSH-ключа, то PuTTY выдаст в диалоговом окне такие строки:
Permission denied (publickey).
PuTTY Error output
Причины ошибки
Ошибка «Access denied» связана с некорректной аутентификацией на основе ключей. Вызвать ее может отсутствие соответствующих прав доступа к файлам или невозможность подтвердить права владельца.
Как решить
- Проверить параметры аутентификации (логин и пароль).
- Проверить наличие и правильность имени SSH-ключа в PuTTY.
- Выполнить проверку содержимого кода SSH-ключа в «authorized_keys».
Если ни один из вариантов не дал положительного результата, то нужно воспользоваться альтернативным графическим клиентом WinSCP. С его помощью нужно реализовать описанную ниже последовательность действий.
- Перейти в папку «/etc/ssh/», а затем открыть файл «sshd_config».
- Далее необходимо найти строки «PasswordAuthentication: YES» и «PermiRootLogin: NO». Значения переменных требуется поменять на противоположные значения, т. е. «PasswordAuthentication: NO» и «PermiRootLogin: YES».
- После сохранения изменений необходимо перезапустить PuTTY и соединиться с удаленным сервером.
Подробнее о том, как создать удаленное соединение для разных дистрибутивов Linux, можно узнать из отдельных руководств:
- Для Ubuntu;
- Для CentOS;
- Для Debian.
Ошибка подключения
Если программа PuTTY выдает ошибку «Unable to open connection to mysite.ru Host does not exist»*, то это свидетельствует о том, что ссылка на SSH-хост не соответствует сетевому адресу.
* Домен mysite.ru приведён для примера.
При истекшем времени подключения или отказе в соединении PuTTY выдаст сообщения «Network error: Connection timed out» и «Network error: Connection refused» соответственно.
Причины ошибки
- Отсутствие сетевого подключения.
- Неверно указан IP-адрес.
- Порт не поддерживается или его значение задано неверно.
- Блокировка исходящего подключения антивирусом или брандмауэром.
Как решить
Чтобы исправить ошибку, рекомендуется действовать по приведенной ниже инструкции.
- Проверить IP-адрес хоста.
- Убедиться, что порт не блокируется какой-либо программой. При необходимости внести его в список исключений.
- Проверить конфигурацию PuTTY во вкладках «Session» и «Connection».
- В список исключений антивируса или брандмауэра необходимо внести стандартный порт 22.