Всем привет, сегодня мы с вами будем делать подключение к удаленному серверу по протоколу ssh.
Зачем это нужно? Да много может быть причин.
Помните я вам рассказывала? У меня есть вполне рабочий системный блок, но к нему нет ни монитора ни клавиатуры ни мышки. Чего он будет простаивать? Можно сделать из него домашний сервер и заставить выполнять его что-то полезное. А подключаться к нему можно по удаленке чтобы не тратиться на покупку еще одного монитора. Или вы, к примеру, где-то далеко от дома и вам надо зайти на свой домашний сервер. Или в конце концов, вы арендовали сервер в каком-нибудь дата-центре. Не будете же вы туда ездить (возможно за много сотен километров) каждый раз, когда появится надобность в его администрировании.
Перед началом настройки удаленного подключения, давайте допустим что вы уже установили на свой компьютер, к которому будете удаленно подключаться, линукс Убунту (серверную или десктопную версию), она находится в рабочем состоянии с настроенными всеми драйверами/устройствами и рабочей сетью. Конечно, для первоначальной установки системы, монитор и клавиатура вам потребуются (можно обойтись и без них если припрет, но с ними проще и меньше мороки).
Для того чтобы мы могли подключиться к компьютеру по протоколу ssh, для начала на нем должен быть установлен этот самый протокол. В серверной версии вы можете выбрать его во время установки системы на компьютер, на определенном этапе установки компьютер вам это предложит, вспомните этот пост и картинку из него:
последняя строка, OpenSSH server
С десктопной версией будет немного сложнее, потому что автоматически она не предлагает установить ssh-сервер, но ничего страшного, установим ручками. Клиентская же часть везде устанавливается по умолчанию вместе с системой еще со времен Linux Mandrake.
Вызываем консоль, для начала обновляем репозитории и пакеты на всякий случай:
sudo apt update
и следом
sudo apt dist-upgrade
Устанавливаем ssh:
sudo apt install ssh
И заодно ставим Midnight Commander, он всегда пригодится
sudo apt install mc
После установки серверная часть ssh автоматически добавится в автозагрузку. Управлять его пуском, остановкой или рестартом можно с помощью консольных команд:
sudo service ssh stop отключить доступ
sudo service ssh start включить доступ
sudo service ssh restart - понадобится для применения изменений в настройках конфига без перезагрузки сервера или для сброса всех подключений.
Подробнее о тонких настройках ssh можете прочитать здесь, но в принципе если вам не нужно никаких тонких настроек - просто установите ssh и перезагрузите компьютер, и он по умолчанию будет готов к подключению.
Если вам нужны более тоникие настройки - их надо делать в файле /etc/ssh/sshd_config, доступ к нему дается только если вы имеете привилегию root(админ), либо текстовый редактор, которым вы будете открывать этот файл, запущен с помощью sudo. Я его открыла сейчас в Миднайт Коммандере, но если честно, даже не знаю что там можно отредактировать, все и так правильно настроено по умолчанию, разве что 22 порт можно сменить на какой-то другой, а то по этому порту вечно в Интернете сканируют всякие хакеры и пытаются подобрать пароли. Думаю, всем ясно то, что если у вас открыто такое входящее подключение - то пароль для доступа к системе должен быть сложным, чтобы его трудно было подобрать, а также его было бы неплохо менять периодически.
Теперь чтобы мы могли начать подключаться к этой машине, надо выяснить ее IP-адрес.
Пишем в консоли ifconfig
Получаем информацию о сетевом подключении. Ищем там IP адрес. И выясняем что он 192.168.1.108 - это и есть адрес компа в моей локальной сети, к которому надо законнектиться.
Ну и в общем, все готово, можно подключаться. Для того чтобы подключиться из линукса - достаточно набрать в консоли машины-клиента
ssh 192.168.1.108 (или тот айпи на котором висит ваш ssh-сервер).
Система запросит логин пароль, после чего переместит вас в консоль удаленной машины, в которой вы сможете работать как будто она перед вами.
Сработает еще и такая конструкция:
ssh логин@192.168.1.108 - тогда логин спрашивать не будет а только пароль.
Для подключения из Windows, нам потребуется стороннее программное обеспечение. Самый удобный ssh-клиент для Windows - это WinSCP. Он бесплатный, скачивать советую с официального сайта. Еще нам потребуется терминал для Windows. Лично мне нравится KiTTY, качайте и ставьте его смело, это хороший терминал, но вы можете использовать какой-то другой, к которому привыкли, например PowerShell, Cmder, PuTTY и даже простой cmd.exe на самый крайний случай.
Устанавливаем и запускаем WinSCP, сразу после запуска он должен попросить у вас ввести параметры соединения, если не попросит - нажмите слева кнопочку "Новое соединение". Заполнять так как на картинке ниже: протокол передачи SFTP, там где имя хоста - вводим айпи компьютера, к которому надо подключиться, порт если не меняли - по умолчанию оставляем 22, если меняли - вписываем тот, на который меняли. Ниже имя пользователя и пароль от машины к которой подключаетесь. Если этим соединением вы будете пользоваться часто - не забудьте нажать кнопочку "сохранить", чтобы не заполнять эту форму каждый раз заново, после чего сохраненное подключение можно будет активировать по щелчку мышки. Только не сохраняйте, если подключаетесь из интернет-кафе хехе... =)
Пошло подключение. Если будет ругаться на ключи и переспрашивать, уверены ли вы - отвечайте да, потом он закэширует ключи и перестанет ругаться.
Мы подключились и получили впридачу файловый менеджер по типу старенького TotalCMD, с помощью которого можно поработать на удаленном компьютере и скопировать с него файлы на текущий. Чтобы скопировать с текущего на тот, к которому подключаетесь - там должна быть расшарена хоть одна сетевая папка.
Теперь можно запускать терминал. В терминале набираем
ssh lin@192.168.1.108 (через @собаку имя пользователя и айпи), далее по запросу вводим пароль, оказываемся в консоли компьютера к которому подключились и можем работать на нем как будто мы непосредственно сидим за этим компьютером. Я ниже набрала ls чтобы точно убедиться в том что мы попали туда, куда хотели.
Попробуем запустить Миднайт Коммандер чтоб удобнее было работать, и вот он, все в порядке, все работает, если это запустилось с админскими правами - можно считать что к удаленному компьютеру мы получили полный доступ. Для разрыва подключения, нужно набрать в консоли exit и подключение будет закрыто.
Примечание: сейчас мы подключились внутри домашней локальной сети, соответственно адрес взяли из нее. Если нужно подключиться извне через интернет - используем айпи, назначенный компьютеру провайдером.
Если подключение извне нужно к компьютеру, который подключен к интернету через роутер (домашнюю сеть) - используем айпи-адрес, назначенный провайдером роутеру (его можно узнать с помощью сайта https://2ip.ru) и затем пробрасываем от него туннель к айпи и порту целевого компьютера. Сделать это можно либо встроенными средствами роутера во вкладке Advanced/Forvarding либо в настройках клиента. Разумеется, на роутере и целевой машине при этом должен быть отключен файрволл, либо компьютер с которого вы подключаетесь должен быть занесен в исключения файрволла.
А что бы вы еще хотели узнать о линуксе? Может что-то кому непонятно? Пишите в комменты, не стесняйтесь, попробуем разобраться вместе.