AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 548660
Accepted
Alexei Martianov
Alexei Martianov
Asked: 2019-10-25 22:31:43 +0800 CST2019-10-25 22:31:43 +0800 CST 2019-10-25 22:31:43 +0800 CST

screen -D -R ... Se necessário desanexar e sair remotamente - qual é o propósito de "logout remotamente" aqui?

  • 772

Meu caso de uso atual passado para mim no trabalho de screenuso é sshpara servidor, supara conta de usuário técnico, então screen -RD. Quando ssha sessão é perdida automaticamente devido ao tempo limite, repito as etapas e tenho meu "status do terminal" no servidor para essa conta técnica com a mesma aparência de se nenhuma redefinição de conexão tivesse acontecido.

Eu queria entender a importância dos -RDsinalizadores e na página de manual da tela que li (ênfase minha):

-D -R

Anexe aqui e agora. Em detalhes, isso significa: Se uma sessão estiver em execução, reconecte. Se necessário, desconecte e faça logout remotamente primeiro. Se não estava em execução, crie-o e notifique o usuário. Este é o favorito do autor.

Eu tentei pesquisar na web por logout remotely screen, o resultado principal relevante foi apenas https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ , onde li sobre desanexação:

Desanexando uma tela

Apenas quando você deseja sair da sessão remota, mas deseja manter a sessão que você criou nessa máquina ativa, apenas o que você precisa fazer é desanexar a tela do terminal para que não tenha mais terminal de controle. Depois de fazer isso, você pode sair com segurança.

No SE, encontrei Como desconectar remotamente uma tela de outro terminal e https://askubuntu.com/questions/526972/remotely-log-out-of-graphical-gnome-session , mas essas são outras perguntas específicas.

Eu tentei ler o wiki sobre como fazer login, sair etc, mas ainda não está claro. Em qual sessão posso sair remotamente? Estou executando screenno servidor... Talvez esses sinalizadores sejam irrelevantes no meu caso de uso específico? Qual é o caso de uso mais comum para -RD(logout remoto)?

ssh
  • 1 1 respostas
  • 761 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2019-10-26T00:35:21+08:002019-10-26T00:35:21+08:00

    Quando você executa screenno servidor, na verdade você tem duas sessões de terminal ao mesmo tempo: a primeira com a qual você fez o SSH e uma segunda "local" gerenciada pelo screencomando. Se a primeira sessão for encerrada por qualquer motivo sem sair screencorretamente primeiro, essas duas sessões serão automaticamente separadas uma da outra e, quando você estabelecer uma nova sessão SSH, screenpermitirá que você se reconecte à segunda sessão existente.

    Se o tempo limite que está cortando suas conexões for algo como um firewall cortando uma conexão existente por inatividade, o problema é que o firewall pode não ter um método para sinalizar o corte para qualquer extremidade da conexão, até o final em question tenta enviar algo pela conexão que foi cortada.

    Portanto, se o firewall cortar a conexão SSH e você inserir um único caractere na conexão SSH, o firewall enviará de volta um TCP Reset para o cliente SSH e você verá que a conexão foi cortada. Mas o lado do servidor SSH não está necessariamente ciente disso: se o servidor não tentou enviar nada para você, ele ainda pode estar lá, esperando por qualquer entrada sua, em uma conexão TCP que é -até o servidor sabe- ainda conectado, mas ocioso.

    Nesse caso em particular, você precisará da -Dopção screen -DRpara extrair a screensessão da sessão SSH antiga, mesmo screenque ela ainda esteja conectada.

    Como efeito colateral, isso fará com que o servidor tente enviar a saída (a mensagem "desconectada" de screen, e um novo prompt de shell) na sessão SSH inicial e cortada, o firewall enviará um TCP Reset de volta e, portanto, o sshdlado do servidor finalmente obterá as informações de que a antiga conexão SSH foi interrompida no nível da rede e a limpará.

    Mas se o que está causando o tempo limite da sua sessão SSH é algo no servidor que está fazendo com que sua primeira sessão SSH termine, por exemplo, o administrador do servidor definindo ClientAliveCountMaxcomo 0 sshd_confige ClientAliveIntervalpara algum valor diferente de zero como um hack para obter uma espécie de tempo limite de inatividade de sshd, sua antiga sessão SSH será totalmente desconectada e a screensessão já estará esperando por você em um estado já separado. Nesse caso, screen -Rbastaria reconectar-se a ele... mas, além disso, especificar a -Dopção não fará mal neste caso.


    A propósito, abusar das configurações ClientAliveIntervale dessa maneira é uma maneira pouco confiável de configurar um tempo limite de inatividade do usuário, pois o lado do cliente pode contornar isso sem saber que está fazendo isso . Isso ocorre porque se trata de monitorar a atividade no nível da conexão SSH, não a atividade real do usuário.ClientAliveCountMaxsshd_configClientAliveInterval

    Se o usuário do cliente SSH estiver enfrentando problemas de tempo limite de rede, ele poderá definir ServerAliveIntervalem seu ~/.ssh/config(ou uma configuração equivalente em um cliente não OpenSSH). Se o ServerAliveIntervaltempo limite de inatividade de conexão do firewall for menor que o do cliente, isso fará com que o cliente SSH envie automaticamente um SSH criptografado "você ainda está aí?" pacote em inatividade, e sshdo servidor responderia a ele, redefinindo os temporizadores de inatividade no firewall.

    Mas definir um lado do cliente ServerAliveIntervalcom um valor de tempo limite mais curto também faria com que o servidor nunca alcançasse o ClientAliveIntervaltempo limite enquanto a conexão SSH estivesse realmente funcionando, anulando o suposto "tempo limite de inatividade do usuário".

    Infelizmente, alguns padrões de proteção de segurança parecem ter incorporado esse ClientAliveIntervalhack de tempo limite de inatividade do usuário baseado em e, portanto, alguns auditores de segurança podem exigi-lo, mesmo que não seja realmente adequado para sua suposta finalidade.

    • 2

relate perguntas

  • Por que o utilitário ssh é considerado um pty?

  • Auto-SSH funciona manualmente, mas não em segundo plano

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • rsync porta 22 e 873 uso

  • Aborto repentino do SCP: tubo quebrado, código de autenticação de mensagem incorreto

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve