Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Script simples para conexões SSH

Enviado por Pajé (ggaglianoΘgmail·com):

“Há poucas coisas mais rotineiras em um usuário de redes ou administrador de sistemas do que fazer conexões SSH. O problema é que normalmente isso implica na desconfortável digitação de vastas linhas de comando. E, se são várias máquinas diferentes, com nomes de usuários e portas diferentes, erros de digitação normalmente diminuem a produtividade e irritam o administrador de sistemas. Para facilmente contornar esta situação, o link abaixo mostra como criar de forma simples scripts para acesso automático via SSH a qualquer máquina, bastando apenas que se digite o nome da mesma. Os scripts são baseados em um script mestre que recebe os dados da conexão, valida-os e monta de forma segura a string de comando SSH.” [referência: pajeonline.blogspot.com]

• Publicado por Augusto Campos em 2012-01-25

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Spif (usuário não registrado) em 25/01/2012 às 8:27 am

    2 comentários:
    1- O que vcs estão fazendo com SSH que exige “vastas linhas”? Se ainda fosse SCP, vá lá, mas SSH?

    2- Parabéns por dividir a sua experiência! É sempre importante mostrar que os profissionais de TI, principalmente administradores de sistemas, deveriam ser mais “Preguiçosos”, automatizando tudo e fazendo seu trabalho 1 vez só, e direito.

    Zen (usuário não registrado) em 25/01/2012 às 8:36 am

    Uma dúvida:
    fastssh.sh 192.168.10.10 22 usuario = 35 caracteres
    ssh usuario@192.168.10.10 -p 22 = 31 caracteres

    Não entendi onde seu script facilita alguma coisa.

    Você pode REALMENTE facilitar o uso do SSH utilizando o arquivo ~/.ssh/config. Este sim vai fazer você “ganhar tempo”…

    Luciano (usuário não registrado) em 25/01/2012 às 8:45 am

    Pegando carioca no comentário acima, a seguinte entrada poderia ser colocada no ~/.ssh/config:

    Host meuServidor
    HostName 192.168.10.10
    Port 22
    User usuario

    E de quebra ainda se ganha o auto completar:

    ssh meuServidor

    E isso sem contar que outras ferramentas como o git, o rsync e o nautilis também pegam carona na mesma configuração.

    De qualquer forma, parabéns pela iniciativa.

    Luciano (usuário não registrado) em 25/01/2012 às 8:48 am

    Pegando CARONA… Perdão. O “carioca” foi erro de digitação no swype.

    Marcelo Nascimento (usuário não registrado) em 25/01/2012 às 8:55 am

    @Zen, server1.sh ou server2.sh tem 10 caracteres, não 31.

    Só não entendi porque o conteúdo do server1.sh, por exemplo é
    fastssh.sh server1.dominio.com 1000 pele

    em vez de
    ssh pele@server1.dominio.com -p1000

    Se fizesse assim, não precisaria do script e seria digitado server1.sh do mesmo jeito…

    Andersoon Araújo (usuário não registrado) em 25/01/2012 às 9:02 am

    O comando alias nao pode fazer isso? alias server1 = ssh user@server -p porta , só colocar isso no .bashrc e ao escrever server1 ele vai abrir a conexao com o servidor. Mas é sempre bom conhecer novas formas de fazer as coisas.

    Eu também uso regularmente “vastas linhas” de parâmetros do SSH, incluindo conexões reversas, definição de proxy socks, redirecionamento de portas, redirecionamento do X, keep alive e outras coisas.

    Acredito que a forma mais vantajosa de defini-los, na minha realidade, seria usar o .ssh/config, como já foi mencionado acima.

    Mas por razões perdidas nas brumas da década de 1990, quando ainda era comum eu usar outros protocolos de acesso remoto a shell (telnet e outros), também recorro a um script, chamado simplesmente “g” (não lembro a razão), que herdei de um antecessor em um trabalho que exerci.

    É um script único, que escolhe um host (e os detalhes associados) a partir de um nome completo passado como parâmetro, ou das primeiras letras dele. Na ausência de um parâmetro, exibe um menu de nomes de hosts para a escolha.

    Mas acho interessante ver como outras pessoas resolvem a mesma demanda e, como já mencionei, acredito que a solução canônica seria o uso do arquivo config.

    José Fernando (usuário não registrado) em 25/01/2012 às 10:42 am

    Também uso o ~/.ssh/config atualmente e acho fantástico, mas houve uma época em que eu não conhecia recurso e criava pequenos scripts em shell como o Marcelo Nascimento citou. Mas é isso aí, vivendo e aprendendo.

    Pajé (usuário não registrado) em 25/01/2012 às 9:00 pm

    Pessoal,

    O uso do .ssh/config é uma ótima alternativa para você usar em sua máquina pessoal ou em seu servidor, mas tem algumas desvantagens. Imaginem o seguinte cenário: você tem um grande laboratório de máquinas Linux, com número muito flutuante de usuários. É um local onde os usuários são criados e apagados a todo instante e muitas máquinas são atualizadas, reconfiguradas ou reinstaladas de acordo com demandas específicas. Um local onde, dependendo do contexto, a sua rede recebe mais máquinas novas para ficarem ali temporariamente ou pode perder máquinas para outra rede, também temporariamente.

    Num cenário com estas características, qual a maneira mais fácil e certeira de se prover sempre a todos os usuários um meio de se conectar às outras máquinas da rede?? Editando toda hora o .ssh/config?? Não: a melhor maneira é simplesmente copiar os scripts prontos para um local seguro e acessível a todos, como o /usr/bin ou outro local que o administrador deseje. Com isso, sua rede sempre fornecerá, de forma ágil e com pouca propensão a falhas ou erros, acesso rápido a todas as máquinas. Editar o arquivo config pode incorrer em erros ou se tornar uma tarefa mais lenta. Simplesmente sobrescrever este arquivo pode apagar alguma configuração específica que o usuário criou ou pode lhe fazer remover máquinas num momento e ter de readicioná-las depois, gerando retrabalho, caso seu ambiente tenha número de máquinas flutuante, de acordo com a demanda.

    Bom, este cenário é muito surreal?? Claro que não!! Posso citar vários casos: laboratórios de escolas, laboratórios de projetos de pesquisa de uma instituição, redes de ONGs que precisem servir a número flutuante de voluntários, funcionários e assistidos, alguns pavilhões de eventos, laboratórios de treinamentos e cursos, etc.

Este post é antigo (2012-01-25) e foi arquivado. O envio de novos comentários a este post já expirou.