Como você administra remotamente suas caixas Linux? [fechadas]

13

OBSERVAÇÃO: fiz esta pergunta hoje de manhã com relação às caixas EC2, mas só recebi links de volta para ferramentas para iniciar e parar instâncias, então vou reformular ...

Eu tenho algumas caixas Linux que executam tarefas de processamento noturno para um dos meus projetos. De tempos em tempos, precisarei entrar, fazer algumas alterações no código, configurar algumas coisas, mover arquivos etc.

Meu conjunto de ferramentas para essas operações é extremamente escasso (SSH na caixa, edite arquivos no VIM, arquivos remotos WGET que eu preciso) e suspeito que exista uma maneira muito melhor de fazê-lo. Estou curioso para ouvir o que outras pessoas na minha posição estão fazendo.

Você está usando alguma forma de sistema de janelas e equivalente à área de trabalho remota para acessar a caixa ou é tudo linha de comando? O gerenciamento de caixas remotas do Windows é trivial, pois você pode simplesmente acessar a área de trabalho remota e transferir arquivos pela rede. Existe um equivalente a isso no mundo Linux?

Você está fazendo alterações no arquivo de configuração / ajustes de script diretamente na máquina? Ou você tem algo configurado na sua caixa local para editar esses arquivos remotamente? Ou você está simplesmente editando-os remotamente e depois transferindo-os a cada salvamento?

Como você move os arquivos entre o servidor e o ambiente local? FTP? Algum tipo de unidade mapeada via VPN?

Eu realmente precisaria ter algumas práticas recomendadas para administrar essas caixas. Qualquer sugestão para remover parte da dor seria muito bem-vinda!

Jason Kester
fonte
Não use FTP, use SFTP.
Brad Gilbert
Ou melhor ainda, use o FUSE sshfs .
Cristian Ciupitu

Respostas:

19

Meu conjunto de ferramentas para essas operações é extremamente escasso (SSH na caixa, edite arquivos no VIM, arquivos remotos WGET que eu preciso) e suspeito que exista uma maneira muito melhor de fazê-lo. Estou curioso para ouvir o que outras pessoas na minha posição estão fazendo.

Escasso? O que você quer dizer com isso? Desculpe-me por reclamar, mas descartar ssh, vim e wget como doloroso é quase um insulto. Da sua pergunta, deduzo que você é principalmente um programador para o seu trabalho diurno, então eu entendo a pergunta. Mas, honestamente, eu não contrataria um administrador de Linux que não se sinta à vontade com nenhuma das três ferramentas mencionadas.

Você está usando alguma forma de sistema de janelas e equivalente à área de trabalho remota para acessar a caixa ou é tudo linha de comando? O gerenciamento de caixas remotas do Windows é trivial, pois você pode simplesmente acessar a área de trabalho remota e transferir arquivos pela rede. Existe um equivalente a isso no mundo Linux?

Para tarefas de administrador, nunca utilizo um ambiente X. Você não precisa de um, apenas serão necessários recursos do sistema e, na maior parte do tempo, eles são um obstáculo ao invés de uma ajuda. A maioria das ferramentas de configuração da GUI (bem, praticamente todas, na verdade) oferece apenas um subconjunto da opção de configuração que você pode definir em um arquivo de configuração com o vim.

Gerenciar uma caixa do Linux não é menos trivial do que gerenciar uma caixa do Windows. Leva apenas algum tempo para obter um conjunto de habilidades decente.

E uma transferência de arquivos em rede equivalente? Muito. scp, sftp, ftp, nfs, cifs / smb (protocolos de compartilhamento de arquivos do Windows) e mais.

Você está fazendo alterações no arquivo de configuração / ajustes de script diretamente na máquina? Ou você tem algo configurado na sua caixa local para editar esses arquivos remotamente? Ou você está simplesmente editando-os remotamente e depois transferindo-os a cada salvamento?

Depende do que estou fazendo. A maioria das coisas que faço diretamente nos arquivos de configuração da máquina (para caixas de desenvolvimento e teste) e depois envio o arquivo para um canal de configuração em nosso servidor Satellite, após o qual implanto o arquivo em todos os servidores diretamente (para caixas de produção ) Realmente, vim é um tesouro. Ou seja, quando você descobrir como usá-lo corretamente.

Como você move os arquivos entre o servidor e o ambiente local? FTP? Algum tipo de unidade mapeada via VPN?

scp todo o caminho e talvez algum sftp, e eu sugiro que você faça também. Nunca, nunca use o FTP para mover arquivos confidenciais (por exemplo, arquivos de configuração) por uma rede pública. Não uso uma rede mapeada porque, novamente, tudo o que preciso é no servidor. Se você quer dizer arquivos c e não arquivos de configuração aqui, geralmente uso algo como svn ou git e, em seguida, carrego minhas alterações na caixa.

Eu realmente precisaria ter algumas práticas recomendadas para administrar essas caixas. Qualquer sugestão para remover parte da dor seria muito bem-vinda!

Você já os está usando: ssh, scp, wget e vim. Aqueles não são dor. Pode haver algumas dores de dentição, enquanto você descobre como elas são poderosas. Mas, para trazer de volta a analogia do Windows, sinto-me seriamente prejudicado quando preciso usar uma caixa do Windows. Para você, é o contrário. É exatamente o que você está acostumado. Então, dê um tempo e ele chegará até você.

wzzrd
fonte
12

Você já mencionou ssh, vim e wget, o que é essencial e perfeito. Algumas ferramentas adicionais que podem facilitar a vida:

1. Tela GNU / byobu

"O GNU Screen é um multiplexador de terminal gratuito que permite ao usuário acessar várias sessões de terminal separadas dentro de uma única janela de terminal ou sessão de terminal remoto. É útil para lidar com vários programas da linha de comando e para separar programas do shell iniciado. o programa." (Na página GNU_Screen da wikipedia)

Uma vantagem principal é que você pode ter um ou vários terminais virtuais que estão exatamente no mesmo estado em que você os deixou quando voltar (ou seja, faça logon novamente via ssh). Isso também é bom quando a conexão é interrompida por algum motivo.

A tela funciona independentemente do software que você usa para conectar-se à caixa (fica no servidor), portanto combina bem com a massa ou com a maioria dos outros softwares de terminal.

Este artigo mostra algumas coisas legais que você pode fazer com ele: http://www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/

Uma boa alternativa é o byobu, que vem bem pré-configurado em algumas distribuições: http://byobu.co/


2. Comandante da meia-noite

Uma ferramenta de navegação gráfica, baseada em console, para visualização e manipulação de arquivos e diretórios.

Também pode fazer transferências remotas seguras. Existe um cliente FISH e FTP incorporado.

Isso significa que você tem duas janelas de texto lado a lado em um console de linha de comando e uma mostra sua caixa remota e a outra onde quer que você a conecte (que também pode ser seu sistema local). Depois, você pode navegar pelos dois sistemas de arquivos lado a lado e marque ou investigue arquivos individuais ou árvores de arquivos e também copie ou mova-os entre locais. O FISH é seguro, o FTP não. Muito poderoso e simples para iniciantes.


3. rsync

Para transferência e sincronização rápida, segura e confiável de arquivos entre diferentes locais


4. VCS

Uso de um sistema de controle de versão distribuído como bazar, mercurial ou git para atualizar o código. O Github ou o Bitbucket oferecem hospedagem de código comercial, mas não é necessário, você também pode usá-lo com eficiência em suas próprias máquinas.

Joseph Kern: você pode elaborar como exatamente usa o git para organização de configuração remota?


5. Clientes terminais

Nos sistemas unix, eles já estão integrados; no Windows, você pode usar Putty, Tera Term, Mind Term ou Pandora. Ou faça uma instalação do cygwin e o ssh das janelas do cygwin terminel para as caixas remotas (o que tem mais vantagens, mas essa é uma questão do que você prefere).


6. Encaminhamento de túnel e porta

Pode ser útil encaminhar determinadas portas com segurança para a sua máquina local. Por exemplo, você pode encaminhar a porta mysql TCP 3306 ou o postgres TCP 5432 e instalar alguma ferramenta de administração de banco de dados localmente.

Você pode construir túneis a partir de máquinas Windwos com massa de vidraceiro (ou linha de comando baseada em seu irmãozinho), com o cygwin e o Mindterm também podem encaminhar portas. Se você estiver localmente em uma máquina tipo Unix, poderá usar o ssh odr plink para criar esse tunelamento.

Para criar um tunelamento mais estável e permanente para várias portas, recomendo o OpenVPN. O método de encapsulamento "chave pré-compartilhada" de um ponto a outro não é tão difícil de instalar.


7. Possui um sistema local semelhante ao unix

Quando a sua máquina local é um Mac, você já tem isso, pode abrir um shell local. Quando sua estação de trabalho é baseada em janelas, pode ser útil criar um servidor local semelhante ao unix, que esteja na mesma rede local. Pode ser uma máquina diferente em uma sala diferente conectada ao mesmo roteador ou switch. Ou, se você quiser apenas uma máquina, poderá instalar o servidor vmware gratuito e criar uma máquina virtual, de preferência o mesmo sistema operacional da sua máquina remota. Instale um servidor samba nele e você poderá "usar na rede" os compartilhamentos samba na sua área de trabalho.

Se você é um servidor ssh no servidor local e abre a porta 22 no seu roteador, pode fazer o ssh no sistema local quando estiver fora.

Você pode construir túneis para máquinas remotas ou transferir e sincronizar arquivos e árvores de arquivos inteiros com o rsync. Você pode usá-lo para testar, no VSC, o desenvolvimento local, como servidor da web local, para fins de treinamento.

Você pode obter backups de máquinas remotas. Você pode criar tarefas cron locais que fazem backups automaticamente (por exemplo, bancos de dados que você deseja salvar localmente regularmente)


8. GUI remota X

Se você trabalha no Linux como um sistema fisicamente, também é possível executar aplicativos da GUI em seus servidores Linux que desenham a GUI na sua máquina local. Pode ser uma ferramenta de comparação de arquivos gráficos ou quase qualquer coisa que você desejar.

Embora não seja muito comum e, em alguns casos, não seja necessário usar o software da GUI para a administração de Linux, você pode, em alguns casos, achar útil se puder.

Na máquina remota, verifique em / etc / ssh / sshd_config que esta linha existe:

X11Forwarding Yes

Reinicie o servidor ssh com

/etc/init.d/sshd restart

Da próxima vez que você fizer login com

ssh -X me@remote-box

Você terá um túnel X, tentará instalar o xclock no servidor remoto para fins de teste e executar xclockna sessão ssh que acabei de mencionar. Um simples relógio x para fins de teste deve aparecer na sua GUI do Linux.

Isso também é possível no Mac se você instalar um ambiente X local.


9. Se você tiver várias caixas ou tarefas semelhantes: use uma ferramenta de configuração do sistema

Se você possui um farm de servidores ou faz grandes implantações na nuvem com muitas máquinas redundantes ou iguais ou similares, você pode usá-lo.

Provavelmente, não faria sentido se a maioria das caixas fosse individual ou tivesse diferentes sistemas operacionais ou versões diferentes em execução.

Existem várias ferramentas:


10. Implante contêineres de aplicativos com docker

Isso vai ainda mais um passo. O Docker é um projeto de código aberto que automatiza a implantação de aplicativos dentro de contêineres de software: https://www.docker.io


11. Use o Google Compute Engine com gerenciamento automático de implantação

https://cloud.google.com/products/compute-engine/

O Google oferece VMs Linux com possibilidades muito interessantes. Você pode implantar rapidamente grandes clusters de máquinas virtuais com ferramentas, incluindo uma API RESTful, interface de linha de comando e console baseado na Web. Você também pode usar ferramentas como RightScale e Scalr para gerenciar automaticamente sua implantação .

mit
fonte
Eu acho que essa é uma resposta muito mais útil que a aceita. O MC é minha ferramenta preferida, especialmente porque permite que você cd /#sh:<user>@<server>:<directory>faça login em uma máquina remota para navegar e transferir arquivos, e como Ctrl-o muda temporariamente você para o console. Outro Ctrl-o leva você de volta ao MC com um pressionamento de tecla!
Gustav Bertram
A conveniência de ter um desktop Linux ao gerenciar servidores Linux não pode ser exagerada. Embora eu veja pouco uso para o comandante da meia-noite ...
Michael Hampton
@ Michael O cliente FISH da mc é o que eu uso muito.
mit
4

Se você está procurando uma boa interface gráfica para trabalhar com o gerenciamento de arquivos via SSH nas caixas do Windows, dê uma olhada no WinSCP: http://winscp.net

Não administro nenhuma instância do EC2, mas, em geral, se houver mais de uma única máquina executando uma função, tentarei escrever um script para executar o trabalho em todas as caixas semelhantes, em vez de fazer alterações caixa por caixa .

Gostaria de começar a usar o Puppet ( http://reductivelabs.com/products/puppet/ ), porque isso torna a administração do sistema mais um exercício de gerenciamento de configuração. Ainda não tive os ciclos de reposição para dar uma olhada em detalhes, mas ouvi coisas muito boas.

Evan Anderson
fonte
4

Você precisa considerar uma ferramenta de gerenciamento de configuração do sistema como o Chef.

Eu quase não gerencio sistemas manualmente via sessões SSH. Eu mantenho todo o código para aplicativos e projetos da Web em um repositório de códigos-fonte que posso acessar a partir dos sistemas que os executam, dizem os sites no EC2. Ao trabalhar na nuvem, é essencial ter uma infraestrutura automatizada.

O fluxo de trabalho básico se parece com isso. Primeiro, para o código do aplicativo e os dados de configuração:

  • Código de clone / checkout do GitHub ou outro repositório de controle de versão.
  • Edite o código no meu editor favorito na estação de trabalho / laptop local.
  • Confirme as alterações, envie para o repositório central.

Para configuração, adicione:

  • Instale os arquivos de configuração no local em que o Chef pode atendê-los.
  • Acione uma execução de chef-cliente ou aguarde o intervalo nos nós de extremidade.

Os sistemas são configurados como instalações de pacotes, criação de usuários, arquivos de configuração gerados a partir de modelos etc.

Eu [quase] nunca edito manualmente arquivos de configuração, dados de aplicativos ou qualquer outra coisa diretamente nos sistemas remotos. As alterações são feitas no meu repositório local e enviadas ao mestre. Eu sei que meus sistemas serão configurados corretamente todas as vezes, independentemente de eu ter que matar uma instância e reiniciá-la.

Os arquivos necessários para a configuração são fornecidos imediatamente no servidor Chef, que é apenas um aplicativo da web (merb, executando no Apache + Passenger). O acesso para clientes é controlado via autorização aberta.

Minha configuração inclui ganchos em Nagios e Munin, então também recebo monitoramento e tendências sem precisar fazer nada manualmente para configurá-los.

Atualmente, as práticas recomendadas estão voltadas para o gerenciamento automatizado de configurações. Se você ainda está fazendo as coisas manualmente, está trabalhando demais.

jtimberman
fonte
3

O que há de errado com ssh, vim e wget? Jóias desconhecidas para a maioria dos usuários do Windows, na minha opinião. :-)

Às vezes eu uso o gVim remotamente através de FTP ou SFTP.

Se você preferir usar a GUI na máquina Linux, poderá executar um X Server (consulte Cygwin para um) em seu host local e encaminhar sua exibição de volta através da sua conexão ssh.

Nunca considerei uma solução VPN que valha a despesa ou o aborrecimento para administrar o Linux.

Se você estiver desenvolvendo e precisar executar seus trabalhos de desenvolvimento no servidor, basta configurar um cliente de controle de revisão no servidor, efetuar logon remotamente, sincronizar o cliente e executar seu processo.

JR Lawhorne
fonte
3

O gerenciamento de caixas remotas do Windows é trivial, pois você pode simplesmente acessar a área de trabalho remota e transferir arquivos pela rede. Existe um equivalente a isso no mundo Linux?

Esse trolling é destinado?

A administração remota de caixas do Windows não é trivial. O administrador remoto de caixas unix é porque eles foram projetados para serem gerenciados remotamente e para estarem em rede. Para o Windows, era um parafuso para um sistema que não foi projetado do zero para viver em uma rede.

Isso é anedótico, mas por experiência em várias empresas, a proporção de servidor para administrador de sistemas para caixas Linux é muito, muito mais alta que para janelas. Simplesmente porque a automação no Windows não é trivial e a GUI sempre será mais lenta que o script. Dito isto, existem administradores do Windows que podem facilitar o gerenciamento de uma infraestrutura do Windows, no entanto, esses administradores são muito raros.

Todas as ferramentas necessárias estão disponíveis por padrão em todas as distribuições Linux. Se você deseja um login gráfico, vá em frente e faça isso, apenas desperdiça CPU e memória e fornecerá os mesmos problemas que você tem com o Windows. E, como já foi dito, para mais de um punhado de caixas, você deve considerar fantoches, chef, cfengine ou uma das muitas outras ferramentas disponíveis.

goo
fonte
1
Eu quis dizer Trivial no sentido de que a experiência de gerenciar uma caixa de janelas remotas é exatamente a mesma da minha área de trabalho. Não há aprendizado necessário. Trabalhar com o SSH me parece como construir um navio em uma garrafa. Você tem esse pequeno orifício através do qual pode tocar no servidor com um longo conjunto de pinças. Estou realmente surpreso ao descobrir que vocês realmente usam e apreciam as ferramentas de linha de comando que já estou usando. Eu esperava encontrar um rico conjunto de ferramentas que eu havia esquecido.
21419 Jason Kester
2

Você diz que está usando o SSH para gerenciar "algumas" caixas. Eu recomendo o ClusterSSH por escrever os mesmos comandos para todos eles de uma só vez (supondo que eles tenham um objetivo semelhante).

http://www.linux.com/learn/tutorials/413853:managing-multiple-linux-servers-with-clusterssh

O uso é tão simples quanto "cssh -l nome de usuário nome do cluster", que abrirá muitas janelas uxterm que você pode gerenciar de uma vez ou separadamente. O cluster é definido por uma lista de IPs em um arquivo de configuração. A única coisa que falta é o suporte ao X, tanto quanto eu sei.

EDIÇÃO: Eu migrei para o Terminator, pois o layout de vários terminais pode ser salvo e restaurado facilmente, além de você obter 10 túneis X simultâneos, se necessário. Facilita a configuração de computadores servidores e clientes ao mesmo tempo.

Além disso, o Fabric é útil ao fazer atualizações de software em meus clientes, basicamente substituindo todo esse material zip / scp / unzip / cp.

lahjaton_j
fonte
1

Eu uso:

  • SSH - Para acesso
  • SCP - Copiando arquivos
  • SSHFS - Se eu precisar montar uma unidade ou diretório
  • git - Salvando configurações

Colocar minhas configurações sob controle de versão foi provavelmente a coisa mais inteligente que já fiz. Uso ferramentas baseadas em SSH o mais rápido possível para reduzir a área administrativa e a superfície de ataque.

Atualmente, todos os meus repositórios git são locais. No futuro, moverei as configurações para repositórios remotos.

Joseph Kern
fonte
1

Não se esqueça de usar o Webmin , uma interface baseada na Web para administração de sistemas para Unix / Linux.

Brian
fonte
0

SSH sempre foi suficiente para mim. Existem outras opções em que o X11 é essencialmente uma área de trabalho remota, embora seja inerentemente inseguro, pois não é criptografado. No entanto, ele pode ser encapsulado por meio de uma conexão SSH (e você obtém o benefício de não precisar abrir portas adicionais). Obviamente, isso pressupõe que você tenha um ambiente X instalado no servidor.

O SFTP (que é ftp sobre SSH e, mais uma vez, nenhuma porta adicional precisa ser aberta) pode ser usado para colocar arquivos no servidor, em vez de extraí-los. Um bom cliente sftp do Windows pode ser encontrado em http://filezilla-project.org/

TrueDuality
fonte
0

Eu ssh para a caixa e fazer alterações na linha de comando e com editores como vi / nano quando a mudança é simples. Para alterações mais complexas no arquivo, como editar vários códigos-fonte ao mesmo tempo, uso o BBEdit no Mac OS X. Ele pode acessar o sistema de arquivos usando o SCP. Tenho certeza de que existe um editor para Windows e Linux. O sshfs é uma maneira de acessar seu sistema de arquivos remotamente usando o ssh.

raio
fonte
0

Definitivamente PuTTY; além do cliente ssh, também existe um cliente SCP baseado no Windows.

RainyRat
fonte
0

Linha de comando sobre ssh para linux (já que eles nem sequer instalaram o X11) e uma mistura de ssh e ARD para minhas máquinas Apple.

Observe que eu nunca uso o Apple Remote Desktop para transferir arquivos, porque o AFP sobre TCP é ridiculamente lento ; Eu apenas uso scp.

msanford
fonte
0

Se você deseja acesso gráfico remoto, certamente desejará configurar o VNC.

Se você deseja editar seus arquivos remotamente pelo SSH, você tem algumas opções:

  • se você estiver usando as ferramentas do KDE (Kate, KDevelop), use o protocolo fish .
  • configure o FUSE para (automaticamente) montar seu volume remoto.
  • Use o muCommander (gráfico multiplataforma mc) para mover seus arquivos para frente e para trás
  • alguns editores de texto (por exemplo, TextWrangler no Mac) suportam obter arquivos por ssh e movê-los para frente e para trás

Depois de editar o arquivo, use o SSH para, digamos, começar a compilar.

Outra coisa a considerar é usar um sistema de controle de versão. bzr é muito legal; é fácil de configurar e projetado para ser fácil de usar. Você pode trabalhar em um computador, pressionar a atualização, puxar a atualização no servidor, executar comandos e reverter se tudo der errado.

Clinton Blackmore
fonte
0

O SSH faz o trabalho na maioria das vezes. Aprender as ferramentas de linha de comando disponíveis vale a pena. Se houver ferramentas GUI que eu queira usar, apenas uso o VNC .

Para mover arquivos, eu costumo montar um compartilhamento CFIS / SAMBA na minha máquina local.

jjclarkson
fonte
0

Para mudanças simples, SSH e SCP fazem o truque. Se precisar fazer alterações em um número maior de máquinas, verifique um sistema de gerenciamento de configuração. Ele poderá iniciar / parar o serviço, alterar o conteúdo dos arquivos de configuração e verificar se seus sistemas estão em um estado conhecido.

Eu prefiro usar o Bcfg2, mas o Puppet e o CFEngine também são populares.

Eu tenho o Bcfg2 executando a cada hora em todos os meus servidores, embora também possa ser executado manualmente. Há um repositório central controlado por versão de todos os arquivos de configuração do sistema, para que possamos rastrear as modificações feitas. O sistema funciona extremamente bem e é um grande passo do logon nos servidores manualmente e ajustes.

Kamil Kisiel
fonte
0

A administração de sistemas Windows sempre foi "pesada": isto é, é necessário um ambiente de janelas completo, que exige estar no local ou em um aplicativo pesado de rede, como a Área de Trabalho Remota ou o VNC.

O UNIX foi projetado com a rede em mente - portanto, as ferramentas são projetadas para trabalhar através da rede, não para parecer bonita. Um servidor UNIX nunca deve ter esse ambiente de janela (geralmente o X11) configurado.

A interface minimalista do SSH, wget e vim é muito mais propícia à rede - o vi foi de fato projetado para funcionar em uma linha de modem de 300 baud.

De fato, existem ferramentas gráficas que ajudarão você a trabalhar com sistemas remotos UNIX e Linux (wsp era um; gvim pode ser outro).

A maneira usual de administrar sistemas UNIX é efetuar login na máquina e trabalhar na própria máquina. Não há necessidade de mover arquivos apenas para editá-los. A única coisa que é preciso lembrar é garantir que a configuração seja boa e testá-la sempre que possível.

Mei
fonte
0

SSH para acessar, scp se eu precisar transferir uma quantidade limitada de arquivos. Diretórios compartilhados via SMBFS / SAMBA, se for necessário. Normalmente é uma perda de tempo. Alguns de nossos funcionários menos * nix competentes usam o webmin bloqueado para acesso à sub-rede local por HTTPS.

Zenham
fonte
0

Shellinabox

O Shell In A Box (pronunciado como shellinabox) é um emulador de terminal baseado na Web, criado por Markus Gutschke. Ele possui um servidor web interno que é executado como um cliente SSH baseado na web em uma porta especificada e solicita a você um emulador de terminal da web para acessar e controlar seu Shell SSH do servidor Linux remotamente usando qualquer navegador AJAX / JavaScript e CSS, sem a necessidade de quaisquer plugins adicionais do navegador, como FireSSH. - http://www.tecmint.com/shell-in-a-box-a-web-based-ssh-terminal-to-access-remote-linux-servers/

Emulação de terminal no cliente

O AjaxTerm é um programa semelhante ao Anyterm , de Antony Lesuisse, escrito em Python. O Shell In A Box é um programa semelhante ao Anyterm, de Markus Gutschke, escrito em C. Ao contrário do Anyterm e do Ajaxterm, ele faz a emulação de terminal no navegador, não no servidor - http://anyterm.org/demos.html#secid2249226

O Butterfly também é um servidor da Web (escrito em python) que alimenta um terminal da Web emulado completo do lado do cliente.

Pro Backup
fonte
1
Nao!! Shell in a Box é tão inseguro!
ewwhite
Você já usou o Butterfly antes?
Pegues