ssh em um servidor que possui uma instalação quebrada

3

Acho que eu quebrei a instalação de ncurses no meu VPS Arch Linux. Agora não consigo fazer login com o SSH, recebo este erro:

$ ssh [email protected]
Last login: Mon Oct 26 08:56:59 2015 from 0.0.0.0
-bash: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
Connection to xyz.com closed.

Não sei bem o que fazer agora. Eu tenho uma sessão tmux em execução no servidor. Existe alguma maneira que eu possa anexar a ele da minha máquina local, encaminhando portas ou algo assim?

    
por nanny 26.10.2015 / 14:19

3 respostas

1

Graças ao meu provedor de hospedagem de VPS (DigitalOcean), consegui inicializar em um ISO de arco, montar a partição do meu sistema e executar uma atualização do sistema com pacman assim:

$ mount /dev/vda1 /mnt/arch
$ pacman --root /mnt/arch --cachedir /mnt/arch/var/cache/pacman/pkg --config /mnt/arch/etc/pacman.conf -Syyu

que corrigiu o problema.

Moral da história: não faça atualizações parciais no Arch Linux.

    
por 26.10.2015 / 19:26
1

Se o seu login shell não for iniciado, você não poderá efetuar login. O cliente enviará uma string para o servidor e ficará no shell de login do usuário no servidor para interpretar a string. O cliente não tem como dizer ao servidor “execute outro comando em vez disso”.

Este é um mecanismo de segurança: se o shell de um usuário é restrito no que ele pode fazer, o usuário não pode fazer nada que não permita.

Se você bloqueou o acesso a todas as contas no sistema, será necessário usar algum método que ignore os logins normais, como acesso físico ou um console de recuperação.

Algumas dicas:

  • Ao fazer manutenção, sempre mantenha um shell de root aberto e não o feche até que você tenha testado se tudo está funcionando.
  • Instale um shell vinculado estaticamente em uma conta com direitos sudoer. Eu não vejo nenhum pré-empacotado por Arch. O Debian tem alguns ; você poderia simplesmente copiar o executável e adicioná-lo a /etc/shells .
  • Certifique-se de que você tenha uma maneira de obter root, mesmo que algumas coisas estejam quebradas; defina o shell do root como bash-static ou sash algo semelhante ou configure um conta toor (caminho alternativo para o login da raiz). Tenha em mente que sudo poderia quebrar também; você pode querer ter uma senha de emergência na conta do toor que é gerada aleatoriamente (única e não memorizada) e escrita em um pedaço de papel que você guarda em um cofre.
por 27.10.2015 / 01:19
-1

Você tentou:

ssh -t username@hostname /bin/sh

Você também pode tentar copiar por scp faltando libncursesw.so.5 para o seu controle remoto.

    
por 26.10.2015 / 14:53