Dicas de SSH

Esse post e para ensinar algumas dicas úteis desse grande amigo do administrador linux, o SSH.

1.Executar comandos remotamente

Para executar um comando remotamente sem logar no servidor basta dar o comando como no exemplo abaixo, que consiste do comando ssh, usuario@ip depois o comando entre aspas.
#ssh root@10.10.10.252 ‘ls /root’

2.SSH sem senha:

No caso da necessidade de automatizar algum comando remoto, ou mesmo um backup feito com rsync não faz sentido uma tarefa agendada que fica esperando na tela que digitemos a senha, para resolver essa questão podemos criar uma chave que vai ser instalada nas duas maquinas que precisam se comunicar para que a chave possa ser usada para autenticar no lugar da senha.

Primeiro gerar a chave na maquina da qual será feito o acesso :

$ ssh-keygen -t rsa

Depois copiar a chave pública para o servidor que será acessível sem senha:

$ scp /home/usuário/.ssh/id_rsa.pub usuariossh@ipdoservidor:/tmp

Neste exemplo copiei para pasta /tmp do servidor.

Acessar o servidor via ssh:

$ ssh usuariossh@ipdoservidor

Concatenar o conteúdo da chave para o arquivos de clientes autorizados no servidor, caso não exista crie a pasta .ssh crie a pasta no home do usuário do qual vai ser autorizado o acesso sem senha.

$ cat /tmp/id_rsa.pub » /home/usuario/.ssh/authorized_keys

Agora basta acessar normalmente com o usuário que tem em seu home a authorized_keys que não vai pedir senhas.

 

3.Rsync

O comando rsync sincroniza pastas e arquivos usando o ssh. Ou seja ele vai clonar a pasta ou arquivo localmente ou via rede. A vantagem do rsync é que ele copia apenas os arquivos que estão diferentes, fazendo o download incremental. A desvantagem é que ele é muito lento em pastas com muitos arquivos, por que ele precisa sempre acessar cada arquivo e ver qual esta diferente da pasta de destino.

Exemplo

rsync -av –stats –progress -e ssh [diretorio] [usuario]@backup.mindnet.com.br:[diretorio_destino]

4.As vezes a conexão com o terminal ssh cai, normalmente por causa do timeout de algum roteador que esta na rota. Temos o incoveniente de termos de abrir a conexão denovo. Não mais, os seus problemas acabaram, com um simples comando o ssh vai em um intervalo de 60 segundo mandar um sinal de vida para que a conexão se mantenha ativo.
Para evitar ter que digitar o comando basta colocar o comando de alias abaixo para alterar permanentemente o comando ssh.

Edite o arquivo  ~/.bash_profile e coloque no fim dele o seguinte:
alias ssh=”ssh -o ServerAliveInterval=60″
Toda vez que você logar no terminal o alias vai estar valido.

About The Author
admin Anakin Pendragon

6 thoughts on “Dicas de SSH

  1. Salve Anakin,

    Parabéns para está matéria – sempre é bom ler dicas sobre ferramentas do GNU/Linux, principalmente os básicos que a gente usa todo dia.
    Neste sentido queria contribuir um pouco com minha experiência:

    Dica 1: Usar ssh como root (#) e fazer login remoto como root (root@ip) não é bem o que eu iria aconselhar. E muitas configurações padrão do ssh proibem o acesso remoto para o usuário root (PermitRootLogin no) por questões de segurança. Pode-se usar o sudo para obter o mesmo resultado.

    Dica 4: O mesmo resultado pode-se alcançar com a linha “ServerAliveInterval 60” no arquivo ~/.ssh/config. E mais: tem uma opção “ServerAliveCountMax” com o padrão 3, que faz que o ssh disconecta depois 3 intervalos (3×60 segundos, no nosso caso) sem atividade. Para aumentar a 30 minutos basta a linha “ServerAliveCountMax 30” no mesmo arquivo.
    Para fazer esta configuração para todos os usuários do seu computador, coloque as duas linhas no arquivo /etc/ssh/ssh_config.

    Abraços, Pascal

    • Valeu pelas suas observações, muito bem vindas. Quanto ao usuário root no ssh eram só exemplos e realmente nem lembrei dessa questão de falar sobre o sudo, no caso sudo e tão interessante que merece um post só pra ele. Abraços

Os comentários estão fechados.