SSH — Это протокол, с помощью которого можно удаленно залогиниться и выполнять команды так, как будто находишься на удаленном сервере. Одним словом SSH это рабочая лошадка при общении с сервером linux
Чтобы соединиться с одного компьютера на другой посредством SSH, вам потребуется ssh-server и ssh-client.
В этой статье мы покажем как пользоваться SSH, как установить SSH и как настроить SSH в системах Linux.
Возможно вам будет интересно КОМАНДА SSH В LINUX
Установка ssh-server
Итак, у вас есть сервер, с которым вы хотите соединяться. Но для начала требуется установить openssh-server
. Установка достаточно проста:
sudo apt install openssh-server
Эта команда подойдет для DEBIAN, UBUNTU. Как включить SSH в Fedora вы можете прочитать Здесь.
Установка очень быстро, не задавая вопросов.
После установки openssh-server
рекомендую сменить порт ssh с 22 который назначается по-умолчанию на что-нибудь другое. Это избавит вас от автоматических переборов паролей злоумышленниками, а также добавит безопасности.
Сделать это можно выполнив команду:
sudo nano /etc/ssh/sshd_config
Установите любой свободный порт, например 8529, и перегрузите сервер:
restart ssh
После этого можно соединяться с сервером по ssh протоколу.
Установка linux-клиента
Как мне известно ssh-client установлен на всех системах linux из коробки, но если у вас ssh не установлен, тогда введите команду:
sudo apt install openssh-client
Соединение c сервером SSH
Соединиться с ssh-сервером можно одной командой:
ssh имя_сервера
Где имя_сервера это ip адрес сервера или имя сервера (если сервер локальный), к примеру:
ssh192.168.1.80
Ой, клиент пытается подключиться к серверу по порту 22, но мы его поменяли на 8529. Исправим это:
ssh -p 8529 192.168.1.80
При соединении с вашим сервером, ssh клиент создаст отпечаток (fingerprint) сервера и сравнит его с тем, который хранится в конфиге. Нужно добавить сервер в список известных серверов, так как соединяемся в первый раз. Набираем «yes» и нажимаем «Enter».
Далее вводим пароль. Не знаете какой пароль? Это пароль пользователя на сервере, с которым вы установили при установке Linux. В данном случае на скриншоте это пользователь root. Если нужно соединяться под именем другого пользователя, тогда требуется указать его имя перед сервером: user@192.168.1.80. После ввода пароля вы войдете на сервер.
Вам может показаться, что ничего не изменилось и что вы по-прежнему на своем компьютере. Но если обратить внимание на имя хоста, то вы поймете, что вы уже находитесь на сервере.
Теперь можно вводить любые команды, как будто вы физически находитесь за терминалом удаленного компьютера.
Чтобы завершить соединение, введите команду exit.
Как пользоваться ssh в windows
Что делать если у вас нет linux? Для ОС Windows существует ряд программ, самая популярная из которых — putty. Есть также расширение этой программы — kitty, которое добавляет в putty новый функционал.
Программа достаточно проста в эксплуатации.
Соединение SSH без пароля
Для удобства можно настроить беспарольное подключение для определенного пользователя. Для этого требуется сгенерировать ключ на клиенте. Делается это командой:
ssh-keygen -t dsa
Все поля можно оставить по-умолчанию.
Далее нужно скопировать сгенерированный ключ:
cat /root/.ssh/id_dsa.pub
Теперь нужно зайти на сервер и скопировать полученный ключ в файл:
nano ~/.ssh/authorized_keys
Теперь можно соединяться по ssh без пароля.
Теперь осталось сделать удобный alias на клиенте и соединяться с сервером одной простой командой.
Монтирование по ssh
Использование ssh не заканчивается выполнением команд на удаленном сервере. На основе протокола ssh базируются другие программы. Например sshfs — программа монтирования удаленной файловой системы с помощью ssh.
Создадим на сервере в домашней директории root тестовый файл:
cd ~ && touch fileonserver
Далее надо установить программу sshfs на клиенте:
sudo apt install sshfs
Создадим тестовую директорию:
cd ~ && mkdir fromserver
А теперь примонтируем домашнюю директорию root с сервера в нашу тестовую директорию на клиенте:
sshfs -C -p 7777 root@192.168.1.80:/root/ ~/fromserver
Проверяем результат:
ls -la ~/fromserver
Чтобы размонтировать воспользуйтесь командой umount:
umount /root/fromserver
Копирование файлов по ssh
Что делать, если нужно скопировать файл на другой сервер? Можно, конечно, примонтировать удаленную файловую систему и воспользоваться обычной командой cp. Но что, если нужно сделать, к примеру, скрипт, который будет регулярно копировать файлы? В этом случае проще воспользоваться другой надстройкой над протоколом ssh — командой scp.
Из предыдущего пункта у нас остался файл fileonserver находящийся на сервере в домашней директории root (если его там нет — создайте). Скопировать его в домашнюю директорию клиента достаточно просто:
scp -P7777 root@192.168.1.80:/root/fileonserver ~
Параметр -P7777 указывает на порт 7777, который мы поменяли в самом начале.
Точно таким же образом можно отправить файл с клиента на сервер. Для этого используйте команду:
touch filefromclient
scp -P7777 ~/filefromclient root@192.168.1.80:/root/
Заключение
В этой статье мы показали и рассказали как соединиться с одного компьютера на другой посредством SSH. Так же как выполнить копирование и монтирование файлов через SSH.