Problema com o sshd - a instalação é remotamente

2

Eu tenho um problema muito ruim. Aqui está o plano de fundo:

Eu tenho um vps e tentei usar o svn, mas ele falha muito. Eu encontrei em um site que o problema desaparece se você reinstalar o cliente ssh e eu fiz isso. E enquanto eu estava no servidor, o problema foi corrigido.

O problema: Acontece que agora não consigo mais fazer login nesse servidor. Diz ssh:

 connect to host myserver.com port 22: Connection refused

Eu suspeito que quando eu reinstalei o cliente ssh o servidor sshd foi desinstalado e o resultado é - sem login.

O que eu tenho é FTP assim como PHP e eu sei a senha do root. Existe alguma maneira eu posso instalar o agan do openssh-server?

Eu tentei seguir:

echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server

e se eu executá-lo no meu terminal de máquina local ele está funcionando e ele tenta instalar o sshd, mas quando eu tento executá-lo com php com:

exec('echo "MYPASSWORD" | /usr/bin/sudo -u root -S apt-get install -q openssh-server', $lines);
echo $lines;

não retorna nada. Eu tentei com ls -la, mas o resultado é o mesmo - no terminal está tudo bem, mas a partir do PHP não funciona.

Você poderia me dar algum conselho sobre como resolver esse problema? Parece que eu preciso me transformar em um hacker:)

    
por Nik 10.08.2011 / 13:40

4 respostas

3

Se você tiver acesso como root over ftp, poderá fazer o seguinte:

  1. Coloque o (s) pacote (s) necessários para a reinstalação do sshd em algum diretório, por exemplo, / root / sshd_reloaded.
  2. Prepare um script, que instale esse pacote e inicie o demônio sshd.
  3. FTP os pacotes para o local apropriado e o script para /etc/cron.hourly (ou equivalente em seu sistema VPS) e chmod-lo 0755 para torná-lo executável. A idéia geral é fazer o cron pegar e fazer o trabalho para você. Se você não quer esperar, você provavelmente poderia colocar um arquivo em / var / spool / cron / para fazer o cron executar um script que instala e inicia o sshd.
  4. Espere o cron pegar o novo arquivo e executar o trabalho.
  5. Faça o login no seu VPS, altere a senha do root (ele foi em texto puro via FTP) e não faça mais nada;).

Eu recomendaria tentar primeiro na máquina local - isso facilitará a depuração. Somente quando tiver certeza de que todos os elementos funcionam, faça isso no host remoto.

O truque todo depende da capacidade de poder remotamente FTP como root em um ambiente não-chrooted (que não é a maneira que eu recomendaria para configurar o servidor FTP).

    
por 10.08.2011 / 15:33
3

Eu não acho que você tenha muita opção a não ser tentar reiniciar seu VPS.

Se isso não resolver o problema, inicialize seu sistema no modo de recuperação (se puder) e dê uma olhada nos seus logs e no arquivo de configuração sshd para ver se eles podem ajudar a diminuir o problema.

Se você não tiver que fazer com que seu provedor de vps ajude.

    
por 10.08.2011 / 13:51
2

A menos que seu usuário do Apache tenha permissões sudo ou esteja executando o Apache como root, desculpe, você não pode instalar o ssh dessa forma. Também reinstalar o material no Linux raramente ajuda; Se alguma coisa, você deve reiniciar o processo sshd e se isso não ajudar, veja se há algo errado com seu arquivo de configuração.

Uma maneira possível pode ser modificar o arquivo / etc / sudoers em seu localhost para conter privilégios sudo para o seu usuário Apache, então carregar esse arquivo para seu servidor (se você puder conectar-se lá como root) e tentar executar seu script novamente . Mas, novamente, eu suspeito que isso não ajuda mesmo se você conseguir isso, já que o problema pode estar em seus arquivos de configuração.

Você também pode tentar modificar seu script para ser sudo -u root -S /etc/init.d/ssh restart depois de conceder os privilégios sudo para o usuário do Apache.

Oh! Mais uma coisa. Se você pode se conectar lá como root, você também pode baixar os arquivos de log e ver se eles revelam porque o seu sshd não inicia ou por que ele caiu.

    
por 10.08.2011 / 13:45
1

Poderia haver maneiras de efetuar login no seu servidor, mas esses são métodos que não são discutidos aqui, eu acho (contendo shells php, shell de conexão etc ...).

Concordo com a resposta acima de que você precisaria de algum tipo de console remoto em seus vps. Muitos provedores suportam esses métodos (reinicializando no modo resque, dando um web kvm, ...).

    
por 10.08.2011 / 13:51

Tags