Действия

SSH

Материал из lulzette's wiki

Версия от 13:35, 10 июля 2021; Losted (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)


Под SSH обычно подразумевается OpenSSH версии 2. Пакет в archlinux: core/openssh, в Ubuntu: openssh-server.

SSH Консоль (+X11)

Основное предназначение SSH - получение доступа к псевдоконсоли сервера. Просто подключаемся к серверу:

$ ssh losted@10.133.7.222
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-77-generic x86_64)

  System information as of Sat 10 Jul 2021 11:26:50 AM MSK

  System load:                      0.57
  Usage of /:                       18.6% of 157.24GB
  Memory usage:                     25%
  Swap usage:                       2%
  Processes:                        205
  Users logged in:                  1
  IPv4 address for ovsbr0:          10.133.7.222
You have new mail.
Last login: Sat Jul 10 10:47:58 2021 from 10.133.7.1
11:26:51 losted@trash ~ →

Также можно просто выполнить команду на сервере удаленно:

$ ssh losted@10.133.7.222 date
Sat 10 Jul 2021 11:30:49 AM MSK

При выполнении команд не создается псевдотерминала, из-за чего могут быть проблемы, например, с оформлением, либо приложения вообще не будут запускаться:

$ ssh losted@10.133.7.222 mc
The TERM environment variable is unset!

$ ssh losted@10.133.7.222
Error opening terminal: unknown.

Решается добавлением параметра -t:

$ ssh -t losted@10.133.7.222 bash
11:33:43 losted@trash ~ →

Также можно пробрасывать приложения требующие X11. Для этого потребуется параметр -X. Пример:

ssh -t losted@10.133.7.222 thunar

SFTP, sshfs и копирование файлов (WIP)

https://www.technodor.info/2019/03/scp-sftp.html

Socks прокси

С помощью SSH клиента можно поднять на localhost Socks прокси. Дополнительной конфигурации со стороны сервера не требуется. Запускаем:

ssh -D 8888 losted@10.133.7.222

Где 8888 - порт, на котором будет висеть Socks прокси, также можно указать IP:Port.

Я запускаю прокси со следующими параметрами, чтобы не запускалась консоль (-N) и процесс переходил в фон (-f):

ssh -D 8888 -f -N

Проброс порта (WIP)

https://habr.com/ru/post/81607/

Пробросить с удаленного хоста на локальный (на клиент)

Пробросим с удаленного хоста 10.133.7.222 порт 25565 на локальный хост на порт 2000:

ssh -L 2000:localhost:25565 losted@10.133.7.222

Если не указывать хост, то

Пробросить с локального хоста (клиента) на удаленный (на сервер)

Можно пробросить порт/хост, доступный с клиента на сервер. При подключении к N порту сервера будет открываться порт с нашего клиента. Таким образом можно, например, организовать доступ к стоящему за NAT'ом хосту.

Делается это так:

ssh -R 2000:25565 losted@10.133.7.222

Теперь можно подключаться к порту 2000 на хосте 10.133.7.222. Если необходимо, чтобы проброшенный порт был доступен на удаленном хосте всем-всем (по любым IP адресам), а не только для localhost, необходимо добавить в /etc/ssh/sshd_config - GatewayPorts yes

JumpHost

JumpHost это фича, с помощью которой можно использовать сервер как прокси, подключаясь через него к другому серверу. Например, мы хотим подключиться к серверу 10.0.4.103, который доступен с сервера 10.133.7.222:

$ ssh -J losted@10.133.7.222 root@10.0.4.103
root@10.0.4.103's password: 
Last login: Sat Jul 10 08:39:59 2021 from 10.0.4.1
[root@archlinux ~]#

~/.ssh/config