Bloqueado para fora do Amazon EC2 SSH - Este serviço permite apenas conexões sftp

3

Doh.

Fechei o SSH em uma caixa do Amazon EC2 depois de brincar com ForceCommand internal-sftp in /etc/ssh/sshd_config para permitir root de login via SFTP.

O SFTP ainda funciona bem, mas o PuTTY morre instantaneamente, por exemplo:

O mais estranho aqui é que o SFTP ainda funciona bem e me permite logar como root atualmente (por causa das mudanças que eu fiz) - então eu tenho uma janela do WinSCP aberta e eu posso vasculhar qualquer coisa que eu gosta e edita coisas.

Quando tento me conectar de outra caixa do Linux usando:

ssh -i keyfile.pem [email protected] -p [portnumber]

Recebo a seguinte resposta:

This service allows sftp connections only.
Connection to [hostname] closed.

Eu removi com sucesso ForceCommand internal-sftp de /etc/ssh/sshd_config , mas estou com problemas para executar service ssh restart remotamente. Quando eu faço isso de sftp com o prefixo ! , ele diz que funcionou - mas eu posso dizer que isso não aconteceu porque a porta de escuta não está mudando.

    
por James Spittal 11.07.2014 / 08:03

2 respostas

4

Removido ForceCommand internal-sftp de /etc/ssh/sshd_config e reinicializado o servidor (para atualizar o arquivo de configuração) e estou de volta.

    
por 11.07.2014 / 11:09
0

When I do it from sftp with the ! prefix, it says it's worked

Tem! Mas ! executa o comando no cliente, não no servidor. Portanto, atente para o que você pode inadvertidamente ter alterado no cliente.

O protocolo SFTP deliberadamente não permite que o cliente especifique comandos para serem executados no servidor. É apenas um protocolo de transferência de arquivos.

Você pode, no entanto, disparar indiretamente comandos no servidor, gravando-os em um arquivo que será executado. Por exemplo, você pode soltar um trabalho em /var/spool/cron/atjobs (se você souber o que escrever no arquivo de trabalho e no arquivo .SEQ - o formato em spool não é completamente trivial). Você pode editar /etc/crontab ou algum outro crontab. Normalmente, os usuários somente do SFTP estão confinados em seu diretório inicial, mas com acesso root a todo o sistema de arquivos, o SFTP sem acesso SSH completo realmente não fornece nenhuma segurança, apenas um inconveniente.

Assim:

  1. Use sftp para fazer o download de /etc/ssh/sshd_config e /etc/crontab .
  2. Edite os arquivos baixados para remover a linha ForceCommand e adicione uma tarefa cron que execute service ssh restart (ou /etc/init.d/ssh restart ou qualquer que seja o seu sistema init desejado) como raiz.
  3. Use sftp para fazer upload dos arquivos modificados.
  4. Aguarde o trabalho cron ativar.
  5. Use ssh para efetuar login e editar a tarefa temporária do cron.
por 13.07.2014 / 00:57

Tags