Eu suspeito que esta solução não funcionará para o SSHFS, etc, mas você pode dar uma olhada em Mosh que fornece suporte de roaming para pelo menos a própria casca.
Cenário:
Eu tentei: conectar-se ao WiFi primeiro e desconectar a ethernet; e também desconectar a Ethernet primeiro, depois conectando-a ao WiFi. Nenhuma das abordagens funciona. Também tentei usar servidores Ubuntu e OS X, juntamente com as duas opções de sistema operacional para o cliente. Sem sorte.
Parece que preciso de uma maneira de dizer à 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 idéia?
Eu percebo que eu poderia ficar em WiFi o dia inteiro, mas eu não quero fazer isso. Eu também percebo que posso apenas trabalhar a partir de uma sessão de tela no servidor remoto e, em seguida, reconectar a essa sessão de tela depois de alterar as interfaces, mas também não quero fazer isso. Por exemplo, eu poderia estar colocando um comando grande como um dump de banco de dados sobre SSH ou eu poderia ter arquivos abertos através do SSHFS, ou eu poderia apenas evitar o incômodo de se re-conectar
Eu suspeito que esta solução não funcionará para o SSHFS, etc, mas você pode dar uma olhada em Mosh que fornece suporte de roaming para pelo menos a própria casca.
Eu tenho medo que você não possa fazer isso, por definição. Uma sessão SSH é executada em uma conexão TCP, que é definida pela 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 irá derrubar a conexão quando a interface cair).
O NAT pode complicar essa imagem, mas não de maneira alguma que o ajude.
Discussão antiga, eu sei, mas por questão de perfeição já que eu estava procurando a mesma coisa ...
No Windows 7 ou mais recente, você deve ser capaz de selecionar tanto o adaptador Wi-Fi quanto o adaptador Ethernet e escolher "Bridge Connection". Isto lhe dará um único endereço IP para ambos, e agora você poderá desconectar e reconectar a Ethernet à vontade (dada a cobertura Wi-Fi contínua).
Eu gerencio isso de duas maneiras:
Inicie a sessão a partir de um servidor de terminal no seu datacenter (RDP / Windows / etc)
OR
Instale a tela da GNU ou tmux e inicie-as após o login.
Eu prefiro tmux
porque screen
é muito antigo, mas se você tiver permissão apenas para instalar pacotes suportados, screen
está no repositório RHEL.
OR
Faça os dois.
Não pode ser feito facilmente.
Eu posso apontar algumas aplicações muito caras que permitem que você mantenha 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 - Abre a sessão do lado do servidor para a máquina cliente, para que o servidor não saiba que a conexão é diferente ou descartada.
Suponho que você poderia codificar tal coisa, mas imagino que, se fosse fácil, meus clientes não estariam sendo estuprados com custos de 5 dígitos para manter suas conexões de terminal abertas em scanners portáteis sem fio.
No entanto, eu tropecei na tela , que afirma criar sessões SSH persistentes , que podem realmente funcionar ... dar é um tiro.
O problema é provavelmente que o endereço IP de origem muda quando você alterna entre cabeado e wifi. Isso evitará que as sessões do ssh voltem.
Eu lidei com isso no linux conectando através de uma vpn e certificando-me que a conexão vpn sempre dá o mesmo ip para sua conta (não é difícil de aplicar, mas a chance é alta que você receberá o mesmo ip sobre vpn já por padrão de qualquer forma, se estiver disponível, mas melhor aplicar isso para ter certeza). Eu principalmente uso vtun, mas openvpn é ok também. Certifique-se de que as suas ligações passam pela vpn (encaminhamento correto, prefixos enviados, ...)
Eu pude ficar desconectado do cabo por até cinco minutos e depois conectar-me ao Wi-Fi e continuar conectado a todas as minhas sessões ssh. Ping contínuo, mtr, htop, ... apenas continue quando a vpn for restaurada como se nada tivesse acontecido.
Tente estar apenas em Wi-Fi quando você iniciar a sessão ssh pela primeira vez. Em seguida, conecte seu ethernet. Isso deve permitir que novas conexões passem pela ethernet, mas a conexão estabelecida permanecerá no wifi. Pelo menos eu vi isso funcionar assim com o OSX, então o sistema operacional / hardware pode variar.
Tenho certeza que você pode fazer isso com uma quantidade tola de hacking w / VMs e Tunneling.
Isso não foi testado, mas deixe-me saber se realmente funciona.
ssh -L 10022:remote.server.example.com:22
deixe-me saber se funciona.
Tags ssh networking sshfs wifi keepalive