- Требования
- 1. Как подключиться по SSH к удаленному серверу (компьютеру)
- 2. SSH с именем пользователя
- 3. SSH с другим номером порта
- 4. SSH без пароля
- Сгенерировать SSH-ключ
- Скопируйте открытый SSH-ключ
- Удаленный вход SSH без пароля
- 5. Запуск команды на удаленном сервере с помощью SSH
- Параметры командной строки SSH
- ssh -C
- ssh -v
- ssh -F
- ssh -L
- ssh -R
- ssh -C -D
- ssh -X
- SSH -Y
- ssh -o
- Заключение
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«, затем введите пароль для вашего удаленного сервера или компьютера.
2. SSH с именем пользователя
SSH использует текущего пользователя удаленного сервера при попытке подключения. Чтобы подключиться к ssh с именем пользователя, используйте следующий синтаксис.
ssh [USERNAME]@[HOSTNAME/IP ADDRESS]
Например, чтобы подключиться к удаленному хосту с IP-адресом 192.168.239.134, имеющим имя пользователя kali, используйте следующую команду.
$ ssh kali@192.168.239.134
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
4. SSH без пароля
В три простых шага вы можете подключиться к удаленному хосту с помощью ssh без пароля. Для входа на удаленный сервер без ввода пароля необходимо выполнить следующие три шага.
Сгенерировать SSH-ключ
Для генерации ключей SSH используется ssh-keygen, который создает открытый и закрытый ключи. Эти пары ключей используются для аутентификации между клиентами и серверами.
Чтобы создать пару ключей, введите следующую команду на клиентском компьютере.
$ ssh-keygen -t rsa
Введите местоположение и перефразируйте или нажмите 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 [USERNAME]@[HOSTNAME/IP ADDRESS]
Например, чтобы подключиться к удаленному хосту с IP-адресом 192.168.239.134, имеющим имя пользователя kali, используйте следующую команду.
$ ssh kali@192.168.239.134
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 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 -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 -b
Опция -b используется для привязки IP-адреса к SSH-соединению. IP — адрес будет использоваться в качестве исходного адреса SSH-соединения. Это применяется, когда у клиента более двух IP-адресов, и вы можете не знать, какой IP-адрес используется для создания соединения с сервером SSH.
Например:
$ ssh -b 192.168.239.133 kali@192.168.239.134
Команда свяжет IP-адрес с удаленным сервером. Мы можем проверить это, используя команду netstat |grep 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 -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 -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 -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
ssh -o
Параметр -o можно использовать с другими параметрами.
Например:
$ ssh -o "batchmode=yes" kali@192.168.239.134
Если вы используете 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, а также показали полезные примеры. Спасибо за то что дочитали до конца. Если остались вопросы или замечания, воспользуйтесь разделом комментариев.