Qual é o risco de atualizar sobre SSH?

75

Quando eu corro

sudo do-release-upgrade

over ssh, recebo a seguinte mensagem.

Esta sessão parece estar sendo executada no ssh. Não é recomendado
para executar uma atualização sobre o ssh atualmente, porque em caso de falha,
é mais difícil de recuperar.

Se você continuar, um daemon ssh adicional será iniciado na porta
'9004'.
Você quer continuar?

Qual é o risco real de atualizar sobre o ssh? Como o daemon ssh adicional ajuda a mitigar isso?

Cruz
fonte

Respostas:

56

O que eu recomendaria fazer seria iniciar uma sessão de tela no servidor e executar a atualização na tela - dessa forma, se sua sessão SSH cair (por qualquer motivo), o processo de atualização não será interrompido.

Screen é um programa que permite terminais persistentes em uma máquina. Portanto, você pode iniciar uma sessão de tela e enquanto a máquina estiver nessa tela (e seu histórico, programas em execução etc.) continuarão a funcionar, embora nenhum usuário esteja na máquina. Ele foi projetado nos primeiros dias para fornecer um terminal de texto com várias janelas antes dos dias do X Server. Você pode instalá-lo usando o APT:

sudo apt-get install screen

Para que você possa acessar o servidor, iniciar a tela, iniciar o processo de atualização e não ter que se preocupar com a atualização, porque você perdeu a conexão com a Internet ou o computador travou.

Marco Ceppi
fonte
1
Tela é uma excelente ferramenta para esta situação.
Ryan Thompson
7
Parece que do-release-upgrade(desde preciso) está sendo executado automaticamente screen.
manu
2
a tela não está mais disponível e, por algum motivo, isso não parece funcionar com o TMUX. Ele retorna este erro: === Comando finalizado com status de saída 1 (Qua 19 de outubro às 21:14:13 2016) ===
Gman Smith
screen -dmS do-release-upgrade-> screen -rpara alternar para a tela correndo -> Ctrl + A, Ctrl + D para sair do ecrã rodando em segundo plano e voltar à tela principal
Ryan Allen
83

A solução do @ Marco-Ceppi já está integrada do-release-upgrade.

Quando você executa do-release-upgrade, inicia uma sessão de tela automaticamente. Se sua sessão ssh for desconectada, você poderá retomar a instalação. Tudo o que você precisa fazer é abrir uma nova sessão ssh e executar do-release-upgradenovamente. Ele será reconectado à sua instalação anterior.

Um segundo risco, apontado por @ sepp2k, é que o servidor sshd talvez precise ser atualizado e talvez não seja possível reiniciar corretamente. Portanto, o programa de atualização executa um segundo daemon, na porta especificada. Você deve verificar sua configuração de rede para ter acesso por essa porta antes de continuar.

Boa sorte.

Além disso, a sessão de tela é do-release-upgradeiniciada por si só, e é executada sob a conta raiz. Portanto, se sua própria sessão de tela falhar, você poderá se recuperar executando sudo screen -x, se (por algum motivo) o comando do-release-upgradenão a recuperar por si só, o que parece ser comum.

jarondl
fonte
1
Você sabe de qual versão do Ubuntu esse foi o caso? Estou tentando atualizar a partir da 9.10 e depois de iniciar a atualização ( sudo do-release-upgrade) e responder "Sim", posso conectar-me ao ssh na porta 9004, mas não há screensessões listadas ao tentar sudo screen -list . (PS Eu não sou passado a fase de download ainda.)
mgd
7
Após a atualização do 9.10 para o 10.04 LTS (onde do-release-upgradenão foi iniciada uma sessão de tela), agora estou atualizando do 10.04 LTS para o 12.04 LTS e do-release-upgradeagora inicia uma sessão de tela automaticamente.
mgd 14/05
2
Portanto, basicamente, do-release-upgradecuide de tudo antes da mão, então: 1) você pode reconectar a partir de um ssh quebrado executando do-release-upgradenovamente após o registro em log novamente e 2) você pode registrar novamente a partir de uma falha na atualização do sshd através da porta especificada no início por do-release-upgrade. É isso ?
Juh_
5
sudo screen -x salvou minha vida! Obrigado.
21316 Felipe
4
Então, por que a mensagem de aviso ainda está lá? Parece muito ameaçador.
Jahmic
17

Se uma nova versão do daemon ssh for instalada como parte da atualização, o daemon será reiniciado. Se a atualização interromper o daemon por algum motivo, não será possível iniciar novamente e você não terá mais como fazer login na máquina.

Ao iniciar um sshd separado, que não é tratado pelo sistema init e, portanto, não será reiniciado durante a atualização, é garantido que a versão antiga do sshd ainda esteja em execução, mesmo que a nova versão falhe. Assim, você ainda pode efetuar login no sistema e ver o que causou a quebra do daemon.

sepp2k
fonte
1
Eu acho que é mais relevante que, quando o daemon for reiniciado, sua atualização provavelmente será encerrada, porque o processo está em execução na sessão ssh.
Malabarba
3

Eu nunca (ainda) tive um problema ao fazer isso, apesar de atualizar apenas meia dúzia de caixas dessa maneira. É que, se algo der errado, o daemon SSH adicional pode ser sua única esperança de evitar uma visita (ou usar as opções de reinstalação remota que você tiver).

Cry Havok
fonte