SSH: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) |
Losted (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Category:Админство (Ops)]] | [[Category:Админство (Ops)]] | ||
[[Category:TODO]] | |||
Под SSH обычно подразумевается OpenSSH версии 2. Пакет в archlinux: <code>core/openssh</code>, в Ubuntu: <code>openssh-server</code>. | Под SSH обычно подразумевается OpenSSH версии 2. Пакет в archlinux: <code>core/openssh</code>, в Ubuntu: <code>openssh-server</code>. | ||
Строка 56: | Строка 57: | ||
</source> | </source> | ||
== SFTP и копирование файлов (WIP) == | == SFTP, sshfs и копирование файлов (WIP) == | ||
https://www.technodor.info/2019/03/scp-sftp.html | https://www.technodor.info/2019/03/scp-sftp.html | ||
Строка 73: | Строка 74: | ||
== Проброс порта (WIP) == | == Проброс порта (WIP) == | ||
https://habr.com/ru/post/81607/ | https://habr.com/ru/post/81607/ | ||
=== Пробросить с удаленного хоста на локальный (на клиент) === | |||
Пробросим с удаленного хоста 10.133.7.222 порт 25565 на локальный хост на порт 2000: | |||
<source>ssh -L 2000:localhost:25565 losted@10.133.7.222</source> | |||
Если не указывать хост, то | |||
=== Пробросить с локального хоста (клиента) на удаленный (на сервер) === | |||
Можно пробросить порт/хост, доступный с клиента на сервер. При подключении к N порту сервера будет открываться порт с нашего клиента. Таким образом можно, например, организовать доступ к стоящему за NAT'ом хосту. | |||
Делается это так: | |||
<source>ssh -R 2000:25565 losted@10.133.7.222</source> | |||
Теперь можно подключаться к порту 2000 на хосте 10.133.7.222. Если необходимо, чтобы проброшенный порт был доступен на удаленном хосте всем-всем (по любым IP адресам), а не только для localhost, необходимо добавить в <source inline>/etc/ssh/sshd_config</source> - <source inline>GatewayPorts yes</source> | |||
== JumpHost == | == JumpHost == |
Текущая версия от 13:35, 10 июля 2021
Под 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 ~]#