Всем привет, сегодня мы с вами будем делать подключение к удаленному серверу по протоколу 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 либо в настройках клиента. Разумеется, на роутере и целевой машине при этом должен быть отключен файрволл, либо компьютер с которого вы подключаетесь должен быть занесен в исключения файрволла.
А что бы вы еще хотели узнать о линуксе? Может что-то кому непонятно? Пишите в комменты, не стесняйтесь, попробуем разобраться вместе.
Congratulations @kamelotan! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!