Установите GatewayPorts yes
и AllowTcpForwarding yes
в sshd_config
на сервере b
. С помощью GatewayPorts clientspecified
явно укажите IP-адрес 0.0.0.0
или *
на сервере a
, чтобы создать обратный туннель. Так что sshd на сервере b
тоже принимает подключения от публики:
ssh -NTR *:2222:localhost:22 root@server-b.com
В противном случае sshd прослушивает только петлевой интерфейс, как в случае с GatewayPorts no
.
Теперь ssh
с другого компьютера на порт2222
:
ssh root@server-b.com -p 2222
Вы войдете на сервер a
после аутентификации.
Нет необходимости настраивать переадресацию iptables
. Кстати, избегайте пользователя root
для удаленного входа, если это возможно.
Если вы не хотите устанавливать опцию GatewayPorts
, вам нужно перенаправить трафик с какого-либо другого порта, скажем, 2223
на localhost:2222
.
Это можно сделать с помощью iptables
на сервереb
:
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 2223 -j DNAT --to-destination 127.0.0.1:2222
*REDIRECT
работает только для одного и того же интерфейса
Но маршрутизация на loopback
интерфейс не разрешена, если:
echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/route_localnet
Теперь ssh
с другой машины на порт2223
:
ssh root@server-b.com -p 2223
Другой вариант — настроить минимальный локальный сервер переадресации с порта 2223
на 2222
с помощью таких инструментов, как ssh
, socat
, netcat
, *inetd
и т. д.
На сервере b
, сsocat
:
socat TCP-LISTEN:2223,fork TCP:127.0.0.1:2222
Или сnetcat
:
nc -l -p 2223 -c "nc 127.0.0.1 2222"
Или сssh
:
ssh -4gfNTL 2223:localhost:2222 localhost
Любое из вышеперечисленных действий можно комбинировать с обратным туннелем для выполнения двойной переадресации с сервера a
за один шаг:
ssh -TR *:2222:localhost:22 root@server-b.com "ssh -4gfNTL 2223:localhost:2222 localhost"
Изman alias
:
If no operands are given, all alias definitions shall
be written to standard output.
Вы можете использовать alias
.
Как указывает @ctx, встроенная команда оболочки alias
выведет список всех определенных вами псевдонимов.
Если вы хотите найти псевдоним, вы можете использовать grep с ним, например, если вы хотите перечислить все псевдонимы git
:
alias | grep git