Automatize o encaminhamento de porta ssh usando DNS

Automatize o encaminhamento de porta ssh usando DNS

Eu tenho vários hosts ssh (uma dúzia), para simplificar host1, host2etc.

Freqüentemente preciso encaminhar a porta, por exemplo

ssh -L 8888:localhost:8888 host1
ssh -L 8889:localhost:8888 host2
ssh -L 8890:localhost:80   host2

Isso é irritante porque 1) preciso me lembrar do mapeamento das portas locais para os hosts e 2) preciso fazer isso manualmente

Eu gostaria de implementar algum tipo de sistema que ouvisse hosts específicos (localmente, na minha máquina), por exemplo, host1.8888.ssh.locale abrisse o túnel para esse endereço automaticamente.

Responder1

Você pode configurar tudo isso dentro do arquivo de configuração ssh, geralmente encontrado no local:$HOME/.ssh/config

por exemplo:

Host abc
    Hostname 1.2.3.4
    Port 345
    IdentityFile /path/to/id_rsa
    LocalForward 8888 localhost:8888
    User root
Host def
    Hostname 2.3.4.5
    User root
    LocalForward 8889 localhost:8889

Dessa forma, você só precisa digitar ssh abce todas as configurações especificadas ali serão aplicadas. Opções disponíveis encontradas dentro dopágina de manual.

Responder2

eu desenvolvisshtunnelesse é um serviço que estabelecerá túneis e os manterá funcionando.

server "srv_us"
  HostName="srv.us"
  User="root"
  IdentityFile="/root/.ssh/id_ed25519"

tunnelR "srv_us_http"
  servername="srv_us"
  remoteaddress="1"
  remoteport=80
  localaddress="127.0.0.1"
  localport=8080

Se você tiver um roteador OpenWrt, poderá usar um semelhantesshtunnelserviço. Recentemente foi adicionada uma GUI para configurá-lo luci-app-sshtunnel.

Responder3

Uma nota do futuro, que nada tem a ver com a pergunta feita, mas resolveu o problema subjacente.

Se você fizer coisas no código vs no servidor, depois de iniciar qualquer processo (por exemplo, jupyter, tensorboard, dashboards, servidores web), o código vs encaminha essas portas para a máquina local, então não há necessidade de memorizar nada, as portas são encaminhadas apenas do host com o qual você trabalha atualmente - e qualquer número de portas, e apenas portas usadas. Que conveniência!

informação relacionada