uzverss: (Default)
uzverss ([personal profile] uzverss) wrote2018-05-09 06:46 pm

установка XRDP, VNC и SSH на Ubuntu и Debian 2




установка XRDP, VNC и SSH на Ubuntu и Debian 1

ssh
http://redhat-club.org/2011/установка-и-настройка-openssh-сервера-в-rhel-centos-fedora
Наглядное руководство по SSH-туннелям
Памятка пользователям ssh
Магия SSH
Полное руководство по SSH в Linux и Windows
Настройка SSH в BlackArch
Как перехватить пароль SSH. Атака человек-посередине на SSH

$ sudo apt install openssh-server
$ sudo systemctl enable sshd

$ ssh user@192.168.88.10
$ export DISPLAY=:0
$ nohup chromium "ya.ru"
$ ssh 192.168.0.100 'DISPLAY=:0 nohup vlc $HOME/Музыка/04\ Kadavergehorsam.mp3
$ ssh 192.168.0.100 'DISPLAY=:0 nohup notify-send "Hello" "World"'
$ ssh пользователь@комп 'команда1; команда2; команда3'
$ ssh root@192.168.88.10 'bash -s' < script.sh
$ ssh root@192.168.88.10 'uptime; df -h; free -m | cat /proc/loadavg'
$ ssh root@192.168.88.10 'reboot'
$ ssh user@192.168.88.10 "bash -s -- $args" < "$script"

отредактировать удалённый файл через ssh с использованием vim, вы можете сделать так.
sudo apt install vim
vim scp://ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ_ХОСТ//home/user/path/file

сравнение (diff) локального файла и удалённого файла:
diff local_file.txt <(ssh user@remote_host 'cat remote_file.txt')
сравнение (diff) двух удалённых файлов:
diff <(ssh user@remote_host 'cat remote_file.txt') <(ssh user2@remote_host2 'cat remote_file2.txt')

монтирование
sudo apt install sshfs fuse
Для монтирования нужно запустить команду вида:
sshfs ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ-ХОСТ:/ДИРЕКТОРИЯ/УДАЛЁННОГО/ХОСТА ТОЧКА-МОНТИРОВАНИЯ
если SSH работает на порту 2222, то команда будет такой:
sshfs ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ-ХОСТ:/ДИРЕКТОРИЯ/УДАЛЁННОГО/ХОСТА ТОЧКА-МОНТИРОВАНИЯ -p 2222

https://ru.stackoverflow.com/questions/547626/Как-ввести-пароль-в-bash-через-скрипт
Как через скрипт ввести пароль?
$ sshpass -p 'пароль' ssh пользователь@сервер
aдреса постоянно меняются
$ sshpass -p 'пароль' ssh -q -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no' пользователь@сервер
https://ru.wikipedia.org/wiki/Expect

управление ключами и доступ по ключу
Аутентификация на сервере Ubuntu с использованием ключей SSH
SSH авторизация по ключу
Вход ssh по ключу ( Linux/Unix )
SSH с высоты птичьего полёта, или разгребаем кучи ключей
Как конвертировать ключи SSH из формата PuTTY в формат OpenSSH
Создание и настройка ключей OpenSSH

Свой ключ можно сгенерировать с помощью команды ssh-keygen
Сменить пароль на ключ можно с помощью команды ssh-keygen -p

~/.ssh/id_rsa.pub — открытый ключ. Его копируют на сервера, куда нужно получить доступ.
~/.ssh/id_rsa — закрытый ключ. Его нельзя никому показывать

Первый раз, когда вы заходите на сервер, ssh вас спрашивает, доверяете ли вы ключу. Если отвечаете нет, соединение закрывается. Если да — ключ сохраняется в файл ~/.ssh/known_hosts

Удалить известный ключ сервера можно командой ssh-keygen -R server. При этом нужно удалить ещё и ключ IP (они хранятся раздельно): ssh-keygen -R 127.0.0.1

Клиентские открытые ключи нужно сохранить на ssh-сервере в файле ~/.ssh/authorized_keys (~ это домашняя директория того пользователя, которым будете логиниться), каждый на отдельной строке
Команда ssh-copy-id user@server позволяет скопировать ключ
Если у вас ssh на нестандартном порту, то ssh-copy-id требует особого ухищрения при работе: ssh-copy-id '-p 443 user@server' (внимание на кавычки)

Права на файл ~/.ssh/authorized_keys
В случае ручного создания файла ~/.ssh/authorized_keys на ssh-сервере необходимо задать следующие права:
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys



Настройка входа через SSH без пароля
На локальной машине (с которой заходим):
ssh-keygen -t rsa

Без предварительного подключения, выполняем команду на удалённой машине (IP и имя пользователя поменяйте на свои):
ssh mial@192.168.1.35 mkdir .ssh

Теперь нам нужно скопировать содержимое файла id_rsa.pub на удалённую машину. Сделать это очень просто (не забываем менять данные на свои):





советы по безопасности
Доступ только с определённых IP
Если планируется подключаться к серверу только с определённых IP-адресов, то можно внести строки в файл /etc/hosts.deny
sshd: ALL

В файл /etc/hosts.allow
Sshd: 188.120.252.0/24

Таким образом будет запрещён доступ по SSH для всех подсетей, кроме указанной.
После этого нужно перезапустить службу командой service sshd restart.

Смените порт SSH
Для этого в файле /etc/ssh/sshd_config необходимо раскомментировать и изменить Port 22 на свободный, это может быть любое число до 65536. и перезапустить службу service sshd restart

Используйте только ключи SSH
Пара ключей создаётся командой ssh-keygen. Секретный ключ (файл без расширения) копируется на ПК, а публичный (имяключа.pub) — в файл .ssh/authorized_keys на сервере.

Чтобы отключить авторизацию по паролю, в том же конфиге SSH нужно изменить директиву PasswordAuthentication yes на PasswordAuthentication no и перезапустить службу — останется авторизация только по ключу SSH.

Оция PermitRootLogin — может ли root входить в систему посредством SSH:
PermitRootLogin no
А эта директива определяет, какие пользователи могут логиниться в SSH:
AllowUsers alice bob

включить SSH доступ для пользователя root
vi /etc/ssh/sshd_config
PermitRootLogin yes
service ssh restart
systemctl restart sshd

разорвать TCP подключение используя утилиту tcpkill
sudo tcpkill -i ИНТЕРФЕЙС -9 port ПОРТ
sudo tcpkill -i ИНТЕРФЕЙС -9 host IP_ИЛИ_ДОМЕН

редактировать конфиги по sftp, sudo доступ
thunar редактировать конфиги по sftp, sudo доступ
thunar sftp://пользователь@сервер

sudo apt install gvfs-fuse gvfs-backends
thunar -q

вставить в свой файл /etc/ssh/sshd_config на стороне сервера:
Subsystem sftp sudo -n true && sudo -n /usr/lib/openssh/sftp-server || /usr/lib/openssh/sftp-server
закомментить
#Subsystem sftp /usr/lib/openssh/sftp-server

systemctl restart sshd

в /etc/sudoers просто поместите новые записи после них.
sudo visudo
Новая запись должна выглядеть
myuser ALL=(ALL) NOPASSWD: ALL для одного пользователя, или
%sudo ALL=(ALL) NOPASSWD: ALL для группы.

Удалённый экран через SSH
Для того, чтобы разрешить форвардинг X11, удалённый сервер должен быть соответствующим образом сконфигурирован. Соответствующие настройки делаются в файле /etc/ssh/sshd_config:
...
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE
AcceptEnv LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE
AcceptEnv LC_MEASUREMENT LC_IDENTIFICATION LC_ALL LANGUAGE
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
...
Настройки туннелирования X11 могут быть также включены/запрещены для каждого пользователя отдельно:
...
Match User bilbobaggins
X11Forwarding no
...
Внося изменения в конфигурационный файл сервера OpenSSH, не забывайте перезапускать его для того, чтобы изменения ступили в силу:
sudo service sshd restart

На стороне клиента, в файле /etc/ssh/ssh_config необходимо включить опцию Forward11Trusted. В Fedora эта опция включена по умолчанию, в то время как в некоторых других дистрибутивах вам придётся сделать это самостоятельно:
...
ForwardX11Trusted yes
...
Имейте ввиду, что расположение файлов конфигурации OpenSSH в различных дистрибутивах могут быть разными.


Xpra выполнение графических приложений без привязки к текущему X-сеансу
http://www.xpra.org/
http://winswitch.org/
Учимся переносить запущенные программы с одного компьютера на другой
Выпуск Xpra 0.10, аналога утилиты screen для графических программ

Возможно использование xpra и из командной строки. На удалённом хосте, на котором необходимо запустить приложение (в примере запускается xterm), выполняем:
xpra start :100 --start-child=xterm

после чего подсоединяемся с другой машины к созданному сеансу
xpra attach ssh:имя_сервера:100

Запуск графических приложений через SSH (X11Forwarding)

sudo apt-get install xauth

Настройка сервера
/etc/ssh/sshd_config
...
X11Forwarding yes
...
Перезагрузка
/etc/init.d/sshd restart

Настройка клиента
/etc/ssh/ssh_config
...
ForwardX11 yes

Запуск
Заходим на удаленный хост и потом запускаем приложение kopete

ssh -XC user1@remotehost
xterm
Сразу запустить приложение xterm

ssh -XC user1@remotehost "xterm"
Опции:
X : перенаправлять графический вывод
С : компрессия передаваемых данных

если не работает проверить права на удаленном хосте
ls -l ~/.Xauthority
если не помогло, добавить на сервере в sshd_config
XAuthLocation /usr/bin/xauth


Долгое Подключение по SSH — Убираем Задержку
Настройка быстрого подключения по SSH в Linux
Ssh долго подключается или тупит Ubuntu

Для того чтобы проверить, надо запустить ssh коннект с флагом -v
ssh -o GSSAPIAuthentication=no user@exampleserver.com -v

1. UseDNS
В основном, подключение по SSH происходит медленно из-за неудачных попыток разрешения имен в системе DNS.

Чтобы уменьшить время ожидания при входе, открываем на редактирование следующий файл:
vi /etc/ssh/sshd_config

Находим строку:
#UseDNS yes

И приводим ее к следующему виду:
UseDNS no

* в конкретном примере мы сняли комментарий и заменили yes на no, чем отключили разрешение DNS-имен при каждой попытке подключения. Если на нашем Linux сервере не настроены DNS (или настроены неправильно), это решит проблему медленного SSH.
** если такой строчки нет, необходимо ее дописать.

Чтобы изменнения вступили в силу, перезагружаем сервис:
systemctl restart sshd || systemctl restart ssh
* или service sshd restart || service ssh restart

2. GSSAPIAuthentication
GSSAPI предоставляет API для различных вариантов аутентификации в системе. Однако, в большинстве случаем, используется стандартный метод PAM. Если отключить GSSAPI, это может значительно ускорить вход по SSH.

Открываем sshd_config:
vi /etc/ssh/sshd_config

И приводим две строки к следующему виду:
GSSAPIAuthentication no
GSSAPICleanupCredentials yes

* в данном примере мы отключили аутентификацию с использованием GSS-API (общий программный интерфейс сервисов безопасности). Он может быть использован, например, для связки с Kerberos. Однако, чаще всего используется метод PAM и надобность в GSSAPIAuthentication отсутствует.

Перезапускаем:
systemctl restart sshd || systemctl restart ssh

3. motd
В Linux Ubuntu при входе файл приветствия /etc/motd выполняет различные задачи, например, проверку обновлений, которая может замедлить вход. В этом случае торможение будет на этапе после ввода пароля.

Для отключения модуля приветствия, открываем на редактирование два файла:
vi /etc/pam.d/login
vi /etc/pam.d/sshd

И комментируем все строки, в которых присутствует pam_motd.so.
Перезапускаем sshd:
systemctl restart sshd || systemctl restart ssh

ssh подключение к GParted Live CD/USB/PXE/HD, Clonezilla live и
SystemRescueCd

nano /etc/hosts.deny
закомментировать строку ALL: ALL EXCEPT localhost
#ALL: ALL EXCEPT localhost

затем рестартануть sshd
/etc/init.d/ssh restart

пользователь по умолчанию user пароль live

в SystemRescueCd sshd уже запущен и нет блокировок, нужно только изменить пароль root и отключить фрайвол
systemctl stop iptables.service ip6tables.service
или при загрузке нажать tab и вбить опцию загрузки nofirewall


ошибки при подключении
если при подключении по ssh ошибка no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
то подключаться
ssh -c aes256-cbc user@address
если no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
то подключаться
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@address
если ошибка no matching cipher found. Their offer: 3des-cbc
то
ssh -c 3des-cbc -oKexAlgorithms=+diffie-hellman-group1-sha1 user@address


https://codeplanet.io/connection-reset-by-peer/
ssh_exchange_identification: read: Connection reset by peer

ssh username@address.com -vv
sudo service ssh stop
sudo /usr/sbin/sshd -d

debug1: Connection refused by tcp wrapper

vi /etc/hosts.allow
добавить
sshd: ALL

sudo service ssh stарт


SSH-туннели — пробрасываем порт
создание постоянного SSH-тоннеля

ssh -N -R 80:localhost:80 root@104.131.xxx.xxx

Установка time-out для SSH в Linux
vim ~/.bashrc
TMOUT=3600

Как повторно подключиться к отключенному сеансу SSH
https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session
tty
apt install reptyr
ps -aux |grep 'pts/3'
reptyr -T 6447

autossh
Как Ваш компьютер может дать доступ к себе через туннель средствами ssh, autossh, autosshd
Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH

Обратный туннель SSH с AutoSSH
Как настроить постоянно работающий SSH-туннель
apt install autossh
autossh -M 5122 -N -R 5022:localhost:22 rex - связывание порта 5022 на удалённом хосте rex и порта 22 на локальной машине
Для autossh обязательна опция -M, которая задает порт для мониторинга соединения
Чтобы запустить autossh в фоновом режиме, добавляем опцию -f
Чтобы завершить процесс, используем команду pkill:
$ pkill autossh

Создание SSH-туннеля. Часть третья
$ autossh -M 0 -f -N -p 2222 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" \ -o "ExitOnForwardFailure yes" -R 3306:127.0.0.1:3306 evgeniy@192.168.110.8

https://switch-case.ru/71908031
autossh -fNL 192.168.0.1:80:1.2.3.4:80 user@1.2.3.4 -p 22 -i /home/user/.ssh/my_key

https://blog.zerial.org/linux/tip-mantener-sesiones-ssh-activas-con-autossh/
Мы передаем «autossh» те же параметры, что и ssh, например:
autossh -L5022:10.0.0.11:22 -L5023:10.0.0.15:22 -L5024:10.0.0.20:22 10.0.0.1
для привязки локальных портов к различным удаленным машинам. ИЛИ
autossh -R2200:localhost:22 example.com
Чтобы привязать удаленные порты к нашей локальной машине.

https://qastack.ru/superuser/37738/how-to-reliably-keep-an-ssh-tunnel-open
autossh -M 20000 -f -N your_public_server -R 1234:localhost:22 -C
autossh -f -nNT -i ~/keypair.pem -R 2000:localhost:22 username@myoutsidebox.com

Создание и поддержание SSH-туннеля

Настройка SSH-тунеля
В самом простом случае ssh-тунель создается командой:
ssh -L 33060:localhost:3306 -i /home/user/.ssh/id_rsa -f -N [email protected]
где
f - выполнять в фоне.
i - путь до ключа, по которому будет происходить авторизация на сервере master.
N - не выполнять никаких команд. Я так понимаю, если вдруг в сценариях logon на сервере master заданы какие-то команды - выполнение их пропускается.
L - задаёт port forwarding. В данном случае, локальный порт 33060 на сервере slave мапится на локальный порт 3306 на сервере master.

Для автоматизации этого процесса есть утилита autossh, которая следит за тем, что тунель работает, и в противном слуае запускает его заново.

autossh -M 0 -o ServerAliveInterval 30 -o ServerAliveCountMax 3 -L 33060:localhost:3306 -i /home/user/.ssh/id_rsa -N
где
M - задает порт мониторинга. По этим портам происходит проверка работоспособности тунеля. 0 отключит мониторинг, а autossh перезапустит ssh только при выходе из ssh.
o - задание дополнительных опций.
L - маппинг портов.
i - путь к ключу, по которому будет происходить авторизация при подключении к серверу master.
N - не выполнять команд при подключении.
f - выполнять в фоне. Этот параметр не передается в ssh, а выполнение в фоне обеспечивает сама утилита autossh.

Теперь надо настроить запуск этой команды при загрузке системы. Это можно сделать используя systemd.

Создаем сервис. Для этого создаем файл
sudo vi /etc/systemd/system/autossh-mysql-tunnel.service
со следующим содержанием



Параметр -f можно не использовать, так как systemd не понимает этот параметр.

Перезагружаем systemd, чтобы сервис стал доступен:
sudo systemctl daemon-reload
Запускаем сервис и помещаем его в автозагрузку:
sudo systemctl start autossh-mysql-tunnel.service
sudo systemctl enable autossh-mysql-tunnel.service
Проверить статус можно с помощью команды:
sudo systemctl status autossh-mysql-tunnel


https://github.com/aktos-io/link-with-server

ssh proxy via host
Перенаправление (forwarding) портов SSH

http://ruslash.com/ssh-proxy-via-host/
На локальном хосте выполняем:
$ ssh -L 8888:localhost:8888 HOSTA
На следующем хосте
$ ssh -D 8888 HOSTX
Потом подключаемся на локальный 8888 порт и используем его в качестве socks прокси.

https://wiki.enchtex.info/practice/ssh_socks_proxy_server
на локальной машине подключаемся к удаленной системе с помощью команды:
$ ssh -D8080 user@server
где -D8080 – произвольный номер порта.
в настройках программы выбираем использоваться socks прокси на адрес 127.0.0.1:8080


Создаём SOCKS 5 прокси с помощью SSH-соединения через удалённый сервер в Linux
Cоздать SOCKS 5 прокси довольно просто. Достаточно выполнить команду по следующей схеме:

ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер> -p 22
Где
-f Запросит ssh перейти в фоновый режим только перед выполнением команды.
-C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
-2 Принуждает ssh использовать только протокол версии 2.
-q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
-T Отменить переназначение терминала.
-n Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).
-N Не выполнять удаленную команду.
-D [локальный IP : ] порт
-p указывает, какой порт использовать; очевидно, это значение по умолчанию равно 22, поэтому приведенное выше утверждение не имеет смысла, но включено для ясности.

Например:

ssh -f -C2qTnN -D 1080 roman@8.8.8.8
После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.

Далее вам следует открыть любой браузер, в котором прописать адрес SOCKS 5 прокси в параметрах соединения.

Для примера я взял Firefox.
Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»
Устанавливаем там пункт «Ручная настройка сервиса прокси», в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» — указанный порт (в примере 1080).
Ставим ключ на пункт «SOCKS 5» и применяем настройки.

Как мне настроить локальный SOCKS прокси, который туннелирует трафик через SSH?

Как настроить прокси через туннель SSH в Ubuntu: примеры с Firefox и Chrome
создайте прокси SOCKS на локальном хосте: 9999 (выберите любой неиспользуемый порт) через соединение SSH с портом , используя имя пользователя [Unknown site tag]. Вам может быть предложено ввести пароль.
Фактический пример:
$ ssh -D 9999 -f -C -N johndoe@path.to.proxy.server.edu -p 52831

SSH через HTTP прокси
http://www.zeitoun.net/articles/ssh-through-http-proxy/start
https://www.math.ucla.edu/computing/kb/creating-ssh-proxy-tunnel-putty


mosh
https://mosh.org/
Инструмент Mosh — альтернативный вариант для SSH и как его использовать
Mosh — SSH с блекджеком и роумингом
Утилита Mosh как замена SSH
законектится
$ mosh user_name@my_host.com

Запустить интерактивную команду вместо $SHELL:
$ mosh my_host.com htop

Использование другого порта для сессии на сервере:
$ mosh --ssh="ssh -p 2213" my_host.com

mosh --ssh="/bin/ssh -MY_FAVOURITE_SSH_OPTION" host

tmux
https://wiki.archlinux.org/index.php/Tmux_(Русский)
Краткая шпаргалка по tmux (менеджеру терминалов)
Tmux — что это и зачем? Обзор и урок tmux
GNU Screen и tmux: ключ к эффективному использованию консоли
Шпаргалка по работе с Tmux (терминальный мультиплексор)
Поддержка мышки в Midnight Commander запущенного из под tmux/screen

небольшой конфигурационный файл:
$ vi ~/.tmux.conf




vi ~/.profile




$ tmux source-file ~/.tmux.conf
кратко
для подключения обратно используется другой аргумент командной строки:
$ tmux attach

для перехода к предыдущему окну следует использовать следующую команду:
$ tmux last-window

А для создания окна такую:
$ tmux new-window

Весь перечень поддерживаемых команд можно получить так:
$ tmux list-commands

Получить список всех возможных опций можно так:
$ tmux show-options
$ tmux show-window-options

Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
tmux new -s session1 - создание сессии с именем session1
tmux attach -t session1 - подключение к сессии session1
tmux a -t session1
Ctrl+b s Выбрать сессию
tmux kill-session -t session1 - Завершение сессии

После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)

В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0...9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).

В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b " — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).

Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».

работа с tmux
Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
<C-b> (CTRL + b)

Новое окно (нажать CTRL+b, затем нажать с)
<C-b c>

Список окон
<C-b w> // переключиться курсором вверх-вниз

Переключение
<C-b n> // следующее окно
<C-b p> // предыдущее окно
<C-b 0> // переключиться на номер окна

Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.

Деление окна горизонтально
<C-b ">
либо команда
# tmux split-window -h

Деление окна вертикально
<C-b %>
либо команда
# tmux split-window -v

Переход между панелей
<C-b стрелки курсора> // либо режим мыши

Изменение размеров панелей
<C-b c-стрелки> // либо режим мыши

Закрытие окон
<C-b x> // нужно подтвердить y
либо
# exit

Отключение от сессии
<C-b d>
либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Выбрать сессию
<C-b s>

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Список поддерживаемых комманд
# tmux list-commands

Дополнительная информация
# man tmux

Магия ssh
Доступ к ssh серверу через очень зарегулированное подключение
Shellinabox — если вдруг заблокируют SSH
https://github.com/sshuttle/sshuttle
https://www.stunnel.org/config_unix.html
https://github.com/erebe/wstunnel
https://github.com/tsl0922/ttyd
https://github.com/stuicey/SSHy
https://xtermjs.org/

Использование утилиты tar по сети через SSH

SSLH
http://rutschle.net/pipermail/sslh/
Краткий экскурс в sslh
SSLH - МУЛЬТИПЛЕКСОР SSL / SSH
Мультиплексирование ssl/ssh соединений через один 443 порт
SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443
SSLH: Запускаем SSH, OpenVPN, HTTPS, Socks5 и MTProto-proxy на 443 порту

ssh VPN
VPN через SSH

https://www.stunnel.org/
Stunnel на сервере и клиенте

Shellinabox — если вдруг заблокируют SSH
SSH через Xray

Превращаем любой SSH-сервер в полноценный VPN с помощью утилиты sshuttle
sshuttle --dns -r user@ip_сервера_или_доменное_имя 0.0.0.0/0

https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/

pip install sshuttle

создаем скрипт с именем типа vpn.sh:



Здесь eax и 11.22.33.44 нужно заменить на имя пользователя и IP-адрес вашего сервера.

Далее говорим:
chmod u+x ./vpn.sh
sudo ./vpn.sh

… и ждем появления строчки:
client: Connected.

Проверяем, что все работает:
curl https://eax.me/ip/

В ответ должен прийти IP-адрес использованного SSH-сервера. Также проверяем, что используется DNS-сервер, указанный в переменной $DNS:
dig eax.me

В ответ должно прийти что-то вроде:
...
;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

… где 8.8.8.8 — это выбранный нами DNS-сервер. В данном случае это сервер компании Google.

Напоследок вот вам несколько занимательных фактов о sshuttle:

Чтобы все работало, на сервере не требуются ни root, ни sudo;
Утилита не ломается, если попытаться сделать VPN внутри VPN;
Также вы можете использовать ее совместно с OpenVPN или каким-нибудь Tor;


SSHFS
https://wiki.archlinux.org/title/SSHFS_(Русский)
https://sysadminium.ru/mount-sshfs/
Монтирование удаленной директории с помощью sshfs. Часть 2 из 2
Подключение и настройка SSHFS в Linux
Как настроить SSH вход без пароля

sudo apt install sshfs fuse

Чтобы получить возможность монтировать от имени обычного пользователя необходимо создать группу fuse:
sudo groupadd fuse
sudo usermod -aG fuse $USER
либо sudo vim /etc/fuse.conf
user_allow_other
тогда монтирование будет с опцией sshfs -o allow_other

Аутентификация по ключу
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
ssh-copy-ide [remote_username]@[server_ip_address]
Открытый ключ автоматически копируется в файл .ssh/authorized_keys

sshfs [remote_username]@[server_ip_address]:/patch /mnt/stor/
sshfs -o ssh_command='ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no' server_ip_address:/patch /mnt/stor/

Если по каким-то причинам нельзя настроить аутентификацию по ключу, можно использовать утилиту sshpass. Опция -f для утилиты sshpass говорит о том, что пароль доступа к серверу сохранен в файле ~/server.pass
sshfs -f -o allow_other developer@123.123.123.123:/var/www/ /home/evgeniy/var-www/

отмонтировать
fusermount -u /opt/repo

vim /etc/fstab
USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs defaults,_netdev 0 0

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting