O poder do SSH
Neste artigo pretendo mostrar o quanto o SSH pode ser útil e o quanto podemos produzir com os recursos que ele oferece, que vão desde um backup automático até a execução de um simples comando e a criação de uma chave pública para acesso sem senha. Há também exemplos com código-fonte de scripts que fazem a mesma tarefa, mas de modo automático.
Iniciando
Para quem ainda não conhece, (resumidamente) o ssh lhe permite executar comandos remotos em um computador como se você estivesse usando-o localmente. No computador que será acessado devemos instalar um servidor de ssh, ou seja, um programa que recebe conexões de outros computadores.
Nos outros computadores você deve ter um programa de cliente ssh, ou seja, um programa que vai controlar o computador remoto.
A vantagem sobre segurança do ssh sobre outras opções, como o telnet, é grande porque o ssh criptografa os dados transmitidos.
Neste artigo mostrarei algumas opções úteis com o ssh e o resto das suas utilizações fica por conta da sua imaginação.
Imagine uma situação em que é necessário pegar nome de todos os arquivos da pasta pessoal de um cliente. A opção que você deve ter pensado é entrar no servidor por ssh, ir até a pasta do cliente e digitar o comando ls. Está correto! Pelo menos em partes...
Imagine que este cliente possui mais de 1000 arquivos e você precisa passar o resultado para uma planilha e criar uma saída "apresentável" para apresentar ao chefe. Entrar por ssh, executar o comando e copiar os nomes um por um está descartado.
Entrar por ssh, executar o comando e jogar o resultado num arquivo texto e depois enviar para o meu computador (por scp ou ftp) talvez seja uma boa idéia, mas a melhor é simplesmente colocar o comando remoto entre aspas logo após as linhas do comando ssh e depois alterar a saída para um arquivo texto. Difícil? Que nada, veja como é mole:
$ ssh 200.251.75.114 "du -ah /home/djair/*" > resultado.txt
Obviamente o servidor ssh pedirá a senha, mas ele não será aberto para você. Ele executará o resultado do comando que está entre aspas e a melhor coisa nisso tudo é que o resultado pode ser jogado num arquivo no seu próprio computador.
No caso acima joguei no arquivo resultado.txt. Um trabalho que levaria um tempão ou uma mão de obra grande, foi resumido em uma só linha.
Nos outros computadores você deve ter um programa de cliente ssh, ou seja, um programa que vai controlar o computador remoto.
A vantagem sobre segurança do ssh sobre outras opções, como o telnet, é grande porque o ssh criptografa os dados transmitidos.
Neste artigo mostrarei algumas opções úteis com o ssh e o resto das suas utilizações fica por conta da sua imaginação.
Executando comandos remotamente sem assumir a máquina
É possível executar comandos e fazer várias coisas por ssh sem precisar assumir literalmente a máquina servidor. Pode parecer complicado, mas com um exemplo acho que fica melhor.Imagine uma situação em que é necessário pegar nome de todos os arquivos da pasta pessoal de um cliente. A opção que você deve ter pensado é entrar no servidor por ssh, ir até a pasta do cliente e digitar o comando ls. Está correto! Pelo menos em partes...
Imagine que este cliente possui mais de 1000 arquivos e você precisa passar o resultado para uma planilha e criar uma saída "apresentável" para apresentar ao chefe. Entrar por ssh, executar o comando e copiar os nomes um por um está descartado.
Entrar por ssh, executar o comando e jogar o resultado num arquivo texto e depois enviar para o meu computador (por scp ou ftp) talvez seja uma boa idéia, mas a melhor é simplesmente colocar o comando remoto entre aspas logo após as linhas do comando ssh e depois alterar a saída para um arquivo texto. Difícil? Que nada, veja como é mole:
$ ssh 200.251.75.114 "du -ah /home/djair/*" > resultado.txt
Obviamente o servidor ssh pedirá a senha, mas ele não será aberto para você. Ele executará o resultado do comando que está entre aspas e a melhor coisa nisso tudo é que o resultado pode ser jogado num arquivo no seu próprio computador.
No caso acima joguei no arquivo resultado.txt. Um trabalho que levaria um tempão ou uma mão de obra grande, foi resumido em uma só linha.