Cenário:
- Na minha mesa com o laptop conectado à ethernet e conectado ao servidor remoto via SSH
- Deseja mudar para o outro lado do escritório com o laptop e mudar para WiFi sem interromper a conexão SSH
Eu tentei: conectar primeiro ao WiFi e depois desconectar a Ethernet; e também desconectar a Ethernet primeiro e depois conectar ao WiFi. Nenhuma abordagem funciona. Também tentei ao usar servidores Ubuntu e OS X, juntamente com as duas opções de SO, bem como para o cliente. Sem sorte
Parece que preciso de alguma maneira de informar à minha conexão SSH que ela deve começar a usar a interface de rede recém-conectada, em vez da antiga interface desconectada. Alguma ideia?
Percebo que eu poderia ficar no Wi-Fi o dia inteiro, mas não quero fazer isso. Também percebo que posso trabalhar de dentro de uma sessão de tela no servidor remoto e reconectar-me a essa sessão de tela após alterar as interfaces, mas também não quero fazer isso. Por exemplo, eu posso estar executando algum comando grande, como um despejo de banco de dados sobre SSH, ou posso ter arquivos abertos por SSHFS, ou posso apenas evitar o incômodo de reconectar-me
Respostas:
Eu suspeito que esta solução não funcione para SSHFS, etc, mas você pode dar uma olhada no Mosh, que fornece suporte de roaming para pelo menos o próprio shell.
fonte
Receio que você não possa fazer isso, por definição. Uma sessão SSH é executada em uma conexão TCP, definida pelas quatro tuplas (endereço de origem, porta de origem, endereço de destino, porta de destino). Você não pode mudar a conexão existente para um endereço diferente no cliente (além do fato de que o sistema operacional interromperá a conexão quando a interface for desativada).
O NAT pode complicar essa imagem, mas não de forma alguma que o ajude.
fonte
Fio velho, eu sei, mas por uma questão de completude, já que eu estava procurando a mesma coisa ...
No Windows 7 ou mais recente, você deve simplesmente selecionar o adaptador wifi e o adaptador Ethernet e escolher "Bridge Connection". Isso fornecerá um único endereço IP para ambos, e agora você poderá desconectar e reconectar a Ethernet à vontade (com a cobertura Wi-Fi contínua).
fonte
Eu gerencio isso de duas maneiras:
Inicie a sessão a partir de um servidor de terminal no seu datacenter (RDP / Windows / etc)
OU
Instale a tela GNU ou tmux e inicie-os após o login.
Eu prefiro
tmux
porquescreen
é bastante antigo, mas se você tem permissão para instalar apenas pacotes suportados,screen
está no repositório RHEL.OU
Faz ambos.
fonte
tmux
é realmente útil. Executando coisas remotas dentro detmux
é um excelente hábito de entrar.Isso não pode ser feito facilmente.
Posso apontar vários aplicativos caros que permitem manter uma sessão Telnet ou SSH ao se mover entre IPs ou APs, ou mesmo por longos períodos de desconexão da rede, mas eles basicamente conseguem isso criando um servidor sempre aberto sessão do lado da máquina cliente para que o servidor não saiba que a conexão é diferente ou caiu.
Suponho que você possa codificar uma coisa dessas, mas imagino que, se fosse fácil, meus clientes não seriam estuprados com custos de cinco dígitos por manterem suas conexões de terminal abertas em scanners de mão sem fio.
No entanto, eu tropecei na tela, que afirma criar sessões SSH persistentes , que podem realmente funcionar ... experimente.
fonte
O problema provavelmente é que o endereço IP de origem é alterado quando você alterna entre cabeado e wifi. Isso impedirá que as sessões ssh voltem.
Eu lidei com isso no linux conectando-me através de uma vpn e certificando-me de que a conexão vpn sempre dê o mesmo ip à sua conta (não é difícil de aplicar, mas é grande a chance de você receber o mesmo ip sobre a vpn por padrão de qualquer maneira, se for disponível, mas melhor aplicá-lo para ter certeza). Eu uso principalmente o vtun, mas o openvpn também está ok. Verifique se suas conexões passam pela vpn (roteamento correto, prefixos enviados, ...)
Consegui ficar off-line a partir do cabo por até 5 minutos e, em seguida, conectar-me ao Wi-Fi e ainda poder permanecer conectado a todas as minhas sessões ssh. Ping, mtr, htop, ... continuam quando o vpn é restaurado como se nada tivesse acontecido.
fonte
Tente usar apenas o wifi quando você iniciar a sessão ssh. Em seguida, conecte sua ethernet. Isso deve permitir que novas conexões passem pela ethernet, mas a conexão estabelecida permanecerá no wifi. Pelo menos eu já vi isso funcionar com o OSX, então o SO / hardware pode variar.
fonte
Tenho certeza de que você pode fazer isso com uma quantidade absurda de hackers com VMs e tunelamento.
Isso não foi testado, mas deixe-me saber se realmente funciona.
ssh -L 10022:remote.server.example.com:22
ssh 192.168.56.3 -p 10022
deixe-me saber se funciona.
fonte