Команда SSH в Linux

SSH — это сетевой протокол для безопасного входа на удаленную машину (сервер) и выполнения команд. Протокол SSH разработан и создан для обеспечения безопасности при удаленном доступе к другому компьютеру. Всякий раз когда данные отправляются компьютером в сеть, ssh автоматически шифрует их.

Чтобы использовать SSH, на компьютере должно быть установлено серверное приложение SSH, поскольку SSH является моделью клиент-сервер. Сервер SSH по умолчанию прослушивает стандартный TCP-порт 22. SSH-клиент по умолчанию доступен во всех дистрибутивах Linux.

В этой статье мы расскажем про команду SSH в Linux и покажем примеры использования SSH.

Требования

  • Клиент SSH
  • Сервер SSH
  • IP-адрес или имя удаленного сервера

Вам может быть интересно:

1. Как подключиться по SSH к удаленному серверу (компьютеру)

Удаленный сервер подключается с использованием IP-адреса или имени хоста. Чтобы подключить ssh с использованием IP-адреса, используйте следующую команду:

ssh [ IP ADDRESS]

Чтобы подключиться к ssh с использованием имени, используйте следующую команду:

ssh [ HOSTNAME ]

Например, для подключения к удаленному хосту с использованием IP-адреса 192.168.239.133 команда будет следующей.

$ ssh 192.168.239.133

При первом подключении к хосту появляется сообщение с вопросом, хотите ли вы продолжить подключение. Введите «YES«, затем введите пароль для вашего удаленного сервера или компьютера.

Как подключиться по SSH к удаленному серверу (компьютеру)
Как подключиться по SSH к удаленному серверу (компьютеру)

2. SSH с именем пользователя

SSH использует текущего пользователя удаленного сервера при попытке подключения. Чтобы подключиться к ssh с именем пользователя, используйте следующий синтаксис.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Например, чтобы подключиться к удаленному хосту с IP-адресом 192.168.239.134, имеющим имя пользователя kali, используйте следующую команду.

$ ssh kali@192.168.239.134

SSH с именем пользователя
SSH с именем пользователя

3. SSH с другим номером порта

SSH-сервер по умолчанию прослушивает TCP-порт 22, но если вы хотите его изменить, тогда вам необходимо указать порт в команде.

Чтобы подключиться к удаленному хосту по SSH, используя другой номер порта, используйте параметр -p, как показано ниже.

ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]

Например, чтобы подключиться к удаленному хосту с IP-адресом 192.168.239.134, используя номер порта 223, используйте следующую команду.

$ ssh 192.168.239.134 -p 223

SSH с другим номером порта
SSH с другим номером порта

4. SSH без пароля

В три простых шага вы можете подключиться к удаленному хосту с помощью ssh без пароля. Для входа на удаленный сервер без ввода пароля необходимо выполнить следующие три шага.

Сгенерировать SSH-ключ

Для генерации ключей SSH используется ssh-keygen, который создает открытый и закрытый ключи. Эти пары ключей используются для аутентификации между клиентами и серверами.

Чтобы создать пару ключей, введите следующую команду на клиентском компьютере.

$ ssh-keygen -t rsa

Сгенерировать SSH-ключ
Сгенерировать SSH-ключ

Введите местоположение и перефразируйте или нажмите enter, чтобы использовать настройки по умолчанию.

Скопируйте открытый SSH-ключ

Вам нужно скопировать открытый ключ SSH на удаленный сервер, чтобы использовать пару ключей. Чтобы скопировать открытый SSH-ключ на удаленный сервер, используйте следующий синтаксис на хост-машине.

ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]

Чтобы скопировать SSH-ключ с IP-адреса 192.168.239.134, используйте следующую команду.

$ ssh-copy-id kali@192.168.239.134

Копирование открытого SSH-ключа
Копирование открытого SSH-ключа

Удаленный вход SSH без пароля

Теперь вы можете войти на удаленный сервер без пароля. Для этого используйте следующую команду.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Например, чтобы подключиться к удаленному хосту с IP-адресом 192.168.239.134, имеющим имя пользователя kali, используйте следующую команду.

$ ssh kali@192.168.239.134

Удаленный вход SSH без пароля
Удаленный вход SSH без пароля

5. Запуск команды на удаленном сервере с помощью SSH

Команда ssh может быть использована для входа на удаленный сервер. Она также может использоваться для выполнения команд на удаленном сервере.

Основной синтаксис для выполнения команд по ssh выглядит следующим образом.

ssh USER1@SERVER1 COMMAND1
ssh USER1@SERVER1 'COMMAND2'
ssh USER1@SERVER1 'COMMAND1 | COMMAND2'
ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"

Чтобы получить дату и время удаленного сервера, используйте следующий синтаксис:

ssh USER1@SERVER1 date

Например, чтобы получить дату пользователя kali с сервера 192.168.239.134, используйте следующую команду.

$ ssh kali@192.168.239.134 date

Запуск команды на удаленном сервере с помощью SSH
Запуск команды на удаленном сервере с помощью SSH

Для проверки использования дискового пространства удаленного сервера используется следующий синтаксис.

ssh USER1@SERVER1 'df -H'

Например, чтобы получить использование дискового пространства пользователем kali с сервера 192.168.239.134, используйте следующую команду.

$ ssh kali@192.168.239.134 'df -H'

Команда использования дискового пространства
Команда использования дискового пространства

Чтобы проверить журналы перезагрузки удаленного пользователя, используйте следующий синтаксис.

ssh USER1@SERVER1 "last reboot"

Например, чтобы получить последние журналы перезагрузки пользователей kali с сервера 192.168.239.134, используйте следующую команду.

$ ssh kali@192.168.239.134 "last reboot"

Получить последние журналы перезагрузки по SSH
Получить последние журналы перезагрузки по SSH

Параметры командной строки SSH

Давайте рассмотрим некоторые параметры, доступные с помощью команды ssh.

ssh -C

Используйте опцию -C с ssh для запроса сжатия всех данных, полученных или переданных с удаленного сервера. Синтаксис команды ниже

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

например

$ ssh -C kali@192.168.239.134

ssh -v

Параметр -v используется с командой ssh для отладки ssh-клиента. Ниже приведен синтаксис:

$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]

например:

$ ssh -v kali@192.168.239.134

Для отладки ssh-клиента используйте параметр -v
Для отладки ssh-клиента используйте параметр -v

ssh -b

Опция -b используется для привязки IP-адреса к SSH-соединению. IP — адрес будет использоваться в качестве исходного адреса SSH-соединения. Это применяется, когда у клиента более двух IP-адресов, и вы можете не знать, какой IP-адрес используется для создания соединения с сервером SSH.

Например:

$ ssh -b 192.168.239.133 kali@192.168.239.134

Команда свяжет IP-адрес с удаленным сервером. Мы можем проверить это, используя команду netstat |grep ssh для проверки соединения.

Привязка IP-адреса к SSH-соединению
Привязка IP-адреса к SSH-соединению

ssh -F

Параметр -F используется вместе с командой ssh для указания конфигурации для каждого пользователя. Файл конфигурации по умолчанию ~/. ssh/config.

Чтобы использовать определенный файл конфигурации, используйте параметр -F следующим образом.

$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]

Например:

$ ssh -F /etc/ssh/ssh_config.d kali@192.168.239.134

ssh -L

Опция -L используется для переадресации локальных портов. Переадресация локальных портов позволяет нам перенаправлять трафик с нашего хоста в порт назначения через прокси-сервер.

Основной синтаксис для переадресации локальных портов такой.

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Например выполните следующую команду для подключения к удаленному хосту на порт 3306, пользователя kali с IP 192.168.239.134 с локального хоста 192.168.239.133 на порту 3336.

$ ssh -L 3336:192.168.239.133:3306 kali@192.168.239.134

Переадресация локальных портов SSH
Переадресация локальных портов SSH

ssh -R

Опция -R используется вместе с командой SSH для включения удаленной переадресации портов. Это означает, что вы можете перенаправить порт на удаленном сервере на порт локального компьютера, который затем будет перенаправлен на порт конечного компьютера.

Основной синтаксис для переадресации удаленных портов следующий.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Например:

$ ssh -R 3336:192.168.239.133:3000 kali@192.168.239.134

Команда заставит ssh прослушивать ssh-сервер  порт 3336 и перенаправлять весь трафик на порт 3000.

Синтаксис для переадресации удаленных портов SSH
Синтаксис для переадресации удаленных портов SSH

ssh -C -D

Опция -D включает динамическую переадресацию портов. Обычный порт SOCKS-1001, однако можно использовать любой номер порта; тем не менее, некоторые программы будут работать только на порту 1001.

Основной синтаксис динамической пересылки выглядит следующим образом.

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Например

$ sudo ssh -C -D 1001 kali@192.168.239.134

Параметр -D указывает динамическую переадресацию портов на 1001 порт, а опция -C включает сжатие.

Динамическая переадресация портов SSH
Динамическая переадресация портов SSH

ssh -X

Опция -X используется вместе с ssh для пересылки X11. Ниже приведен синтаксис для пересылки X11.

ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]

Используйте следующую команду, чтобы включить переадресацию X11 для пользователя kali с IP-адресом 192.168.239.134.

$ ssh -X 192.168.239.134

SSH -Y

Параметр -Y используется вместе с ssh для доверенной переадресации X11. Это означает, что удаленный X11 будет иметь полный доступ к исходному дисплею X11.

ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]

Используйте следующую команду, чтобы включить доверенную переадресацию. X11 для пользователя kali с IP-адресом 192.168.239.134.

$ ssh -Y 192.168.239.134

Параметр -Y для доверенной переадресации X11 SSH
Параметр -Y для доверенной переадресации X11 SSH

ssh -o

Параметр -o можно использовать с другими параметрами.

Например:

$ ssh -o "batchmode=yes" kali@192.168.239.134

Если вы используете ssh -o «batchmode=yes», команда успешно выполнится на удаленной машине, если включено подключение без пароля, в противном случае команда вернет ошибку.

ssh -o "batchmode=yes"
ssh -o «batchmode=yes»

Некоторые из наиболее важных параметров командной строки показаны в следующей таблице.

SSH Параметр (опция) Описание
Позволяет перенаправлять соединение агента аутентификации.
Этот параметр отключает перенаправляемое соединение агента аутентификации.
-b Параметр используется для привязки адресов источников.
Этот параметр используется для сжатия данных.
-c cipher_spec Параметр выбирает спецификацию шифра для шифрования сеанса.
-d Эта опция отвечает за динамическую переадресацию портов на уровне приложений.
-E log_file Параметр добавляет журналы отладки в файл log_file вместо стандартной ошибки.
-F config file Этот параметр указывает файл конфигурации для каждого пользователя.
-g Эта опция позволяет удаленным хостам подключаться к локальным перенаправленным портам.
-i identity_file Опция считывает закрытый ключ для аутентификации с открытым ключом.
-j Параметр определяет директиву конфигурации ProxyJump.
-l login_name В этом параметре указывается пользователь для входа на удаленный компьютер.
-p port Параметр используется для указания порта для подключения к удаленному хосту.
-q Это тихий режим.
-V Подробный режим.
Параметр позволяет переадресовать X11
-Y Эта опция обеспечивает надежную переадресацию X11

Заключение

В этой статье мы рассказали как использовать команду ssh, а также показали полезные примеры. Спасибо за то что дочитали до конца. Если остались вопросы или замечания, воспользуйтесь разделом комментариев.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.