SSH (Secure Shell) — протокол безопасного входа на удалённые серверы Linux. Умение работать с этой утилитой необходимо не только администратору, но и веб-мастеру.
Содержание
Синтаксис
$ ssh [опции] имя пользователя@адрес сервера [команда]
Основные опции
- f
- перевести
ssh
в фоновый режим - g
- разрешить удаленным машинам обращаться к локальным портам
- l
- имя пользователя в системе
- n
- перенаправить стандартный вывод в
/dev/null
- p
- порт
ssh
на удаленной машине - q
- не показывать сообщения об ошибках
- v
- режим отладки
Установка
Утилита входит в состав OpenSSH (Open Secure Shell), предназначенного для шифрования сеансов связи в сети.
Компоненты OpenSSH:
- ssh
- scp
- sftp
- sshd
- sftp-server
- ssh-keygen
- ssh-keysign
- ssh-keyscan
- ssh-agent
- ssh-add
Установка в Ubuntu
Установите утилиту
$ sudo apt install ssh
Установите OpenSSH
$ sudo apt install openssh-server
Добавьте пакет OpenSSH в автозагрузку
$ sudo systemctl enable sshd
Проверьте работу утилиты
mensh@li1398-20:~$ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-05-16 14:19:29 EEST; 5 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 113969 (sshd)
Tasks: 3 (limit: 1071)
Memory: 14.2M
CGroup: /system.slice/ssh.service
├─113969 sshd: /usr/sbin/sshd -D [listener] 1 of 10-100 startups
├─276511 sshd: root [priv]
└─276512 sshd: root [net]
Если установка прошла корректно, в выводе будут показаны настройки по умолчанию.
Настройка
По умолчанию соединение работает по порту 22
. Из соображений безопасности порт лучше изменить. Для этого:
Откройте конфигурационный файл в текстовом редакторе
mensh@li1398-20:~$ sudo vim /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Include /etc/ssh/sshd_config.d/*.conf
Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
...
В sshd_config
замените порт 22
на другое значение в диапазоне от 1
до 65 535
.
Выбранный порт не должен быть занят другой службой.
Для вступления изменений в силу перезапустите SSH-сервер.
systemctl restart sshd
Использование
Простейший пример — подключения к удалённому серверу Linux
oleg@mobile:~:$ ssh mensh@139.162.132.20
mensh@139.162.132.20's password:
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-81-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun May 22 11:51:53 EEST 2022
System load: 0.03
Usage of /: 49.5% of 24.05GB
Memory usage: 70%
Swap usage: 65%
Processes: 124
Users logged in: 0
IPv4 address for eth0: 139.162.132.20
IPv6 address for eth0: 2a01:7e01::f03c:92ff:fea5:a38d
7 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
*** System restart required ***
Last login: Tue Sep 21 07:04:25 2021 from 77.77.3.137
Теперь после входа на удалённый сервер вы можете работать на нём, используя те же команды, что и в терминале локального компьютера.
Заключение
Описанная утилита крайне необходима для работы на удалённом сервере Linux. Пользоваться ей сможет и начинающий администратор собственного VPS. Она также нужна для работы с утилитами rsync
и scp
, позволяющим копировать и выполнять синхронизацию, но им будут посвящены следующие статьи.