mantém a conexão ssh viva e persistente ao alternar as conexões da interface de rede

9

Cenário:

  1. Na minha mesa com o laptop conectado à ethernet e conectado ao servidor remoto por SSH
  2. Deseja mudar para outro lado do escritório com laptop e mudar para WiFi sem interromper a conexão SSH

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

    
por Sean Madsen 15.08.2012 / 22:20

8 respostas

4

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.

    
por 15.08.2012 / 23:56
3

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.

    
por 26.08.2012 / 08:44
2

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).

    
por 03.04.2016 / 09:53
2

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 ou 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.

    
por 03.04.2016 / 16:00
1

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.

    
por 15.08.2012 / 22:43
1

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.

    
por 19.07.2017 / 15:05
0

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.

    
por 16.08.2012 / 00:05
0

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.

  1. Crie uma VM guest com 2 interfaces, 1 adaptador em ponte (para wifi) e 1 rede somente host
  2. Digamos que a VM tenha 192.168.0.25 para o adaptador em ponte para a esposa e 192.168.56.5 para o host apenas.
  3. Dentro do vm crie a conexão ssh com um túnel para a porta do lado remoto 22 ssh -L 10022:remote.server.example.com:22
  4. Agora conecte-se pelo túnel. %código%
  5. Quando você perder sua conexão wifi, mude o adaptador na VM para o adaptador ethernet.
  6. Espero que não atrapalhe ou estrague a tabela de roteamento

deixe-me saber se funciona.

    
por 21.03.2013 / 02:30