Removido ForceCommand internal-sftp
de /etc/ssh/sshd_config
e reinicializado o servidor (para atualizar o arquivo de configuração) e estou de volta.
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.
Removido ForceCommand internal-sftp
de /etc/ssh/sshd_config
e reinicializado o servidor (para atualizar o arquivo de configuração) e estou de volta.
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:
sftp
para fazer o download de /etc/ssh/sshd_config
e /etc/crontab
. 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. sftp
para fazer upload dos arquivos modificados. ssh
para efetuar login e editar a tarefa temporária do cron.