De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Gerenciador de Conexões para terminal (não GUI)

Colaboração: André Marques Saunite

Data de Publicação: 20 de setembro de 2012

Eu trabalho com administração de sistemas Unix, e tenho uma lista bem grande de máquinas que eu tenho que me conectar constantemente, e isso torna praticamente impossível lembrar IP, usuário e senha de todas elas.

Pra facilitar a vida existem vários softwares de gerenciamento de conexão, um dos mais conhecidos é o "PuTTY", outro muito famoso no mundo windows é o secureCRT, que não é livre.

No Linux, para o meu gosto pessoal, o melhor que eu encontrei até hoje foi o PAC (http://sourceforge.net/projects/pacmanager/), comecei a utilizar ele alguns meses atrás e é realmente um software muito bom e completo.

Porém, como eu estava muito acostumado a utilizar o konsole para me conectar, e já sabia todos os seus atalhos de teclado, eu senti falta de algumas funcionalidades do konsole no PAC, e por isso pensei "Por que não usar o gerenciador de conexões em qualquer emulador de terminal que eu escolher?"

Como eu estava com algum tempo livre e vontade de treinar os meus (poucos) conhecimentos em perl, eu resolvi tentar desenvolver algo que fizesse esse trabalho.

O resultado final foi o 'ac' ou Auto Connector (ou André Connector :0), e seu uso é bastante simples, por exemplo:

Para criar uma conexão ssh:

  $ ac -a -n teste1 -i 10.0.0.1 -P 22 -u user -p senha123 -t ssh -c "Conexão de Teste"
  Adding: teste1,10.0.0.1,22,user,*****,ssh,Conexão de Teste,-X -C -o PreferredAuthentications=password,keyboard-interactive

Para listar todas conexões criadas:

  $ ac -ls
  NAME            IP / HOSTNAME   USER            TYPE    COMMENT
  teste1          10.0.0.1        user            ssh     'Conexão de Teste'

Para mostrar detalhes de uma conexão:

  $ ac -s teste1
  Connection Name:        teste1
  IP Address:             10.0.0.1
  Port Number:            22
  User Name:              user
  Passwd:                 *****
  Connection Type:        ssh
  Comment:                'Conexão de Teste'
  SSH OPTIONS:            '-X -C -o PreferredAuthentications=password'

Para conectar:

  $ ac teste1
  user@10.0.0.1's password:
  X11 forwarding request failed on channel 0
  user@10.0.0.1>
  user@10.0.0.1>logout
  Connection to 10.0.0.1 closed.

Além disso, é possível se conectar em cadeia, especificando várias conexões salvas o programa vai conectando de um nó a outro, até terminar a lista.

Também é possível alterar e remover conexões, salvar grupos de conexões (para conexão em cadeia), especificar uma chave ssh ao invés de senha, é possível que o script peça a senha interativamente para que não tenha que digita-la na linha de comando, e também clonar conexões.

Por enquanto o script suporta conexões ssh, sftp, ftp e telnet.

Abaixo mostro o help do comando com todas as suas opções:

Uso:

  ac [-a|-d|-x|-l|-h|-m|-s] [-n nome|-i ip|-P porta|-u user|-p password|
     -k ssh key_identity_file|-c commentario|-t tipo|-o ssh_options] [nome]

Para conectar a uma conexão já salva:

   ac < nome> [< nome_01>...< nome_N>]

Onde 'nome' e 'nome_XX' são os nomes de conexões salvas (Se mais de uma conexão é especificada, o script vai conectar ao primeiro nó, depois a partir desse nó vai conectar ao que segue, e assim por diante até acabar a lista.)

Adicionar / Salvar conexão:

  ac -a -n < nome> -i < ip> -u < usuario> -t < tipo>
    [-P < port_number>|-p < password>|-k < ssh_key_id_file>|-c < comment>]
-n < nome> Nome da conexão a ser salva
-i < ip> IP ou nome do host
-t < tipo> Tipo de conexão, as seguintes são suportadas: 'ssh telnet ftp sftp'
-u < usuario> Usuário no servidor remoto -P < porta> Número da porta (Se não especificado se usará a padrão para o tipo de conexão)
-p < password> Senha para o usuario, se não especificada, ou se conter um hífen (-), então a senha será pedida (Opção não suportada com -k)
-k < key_id_file> Chave de autorização SSH, opção não suportada com -p
-c < comentário> Comentário para a conexão

Para deletar uma conexão salva:

  ac -x < nome> Nome da conexão ou do grupo para se deletar

(Caso a conexão pertença a um grupo, ela não será deletada)

Modificar uma conexão salva:

  ac -m < nome> [-n < novo nome>] [-i < ip>] [-u < usuario>] [-t < tipo>]
   [-P < porta>] [-p < password>] [-k < ssh_key_id_file>] [-c < comentário>]
< nome> Nome da conexão a ser alterada
-n < nome> Novo nome da conexão
-i < ip> Novo IP ou nome do host
-t < tipo> Novo Tipo de conexão, as seguintes são suportadas: 'ssh telnet ftp sftp'
-u < usuario> Novo usuário no servidor remoto
-P < porta> Novo número da porta (Se não especificado se usará a padrão para o tipo de conexão)
-p < password> Nova senha para o usuario, se conter um hífen (-), então a senha será pedida (Opção não suportada com -k)
-k < key_id_file> Nova Chave de autorização SSH, opção não suportada com -p
-c < comentário> Novo Comentário para a conexão

(Todos parametros são opcionais, mas ao menos um deve ser especificado)

Para Duplicar / Clonar uma conexão salva:

   ac -d < nome> -n < novo nome> [-i < ip>] [-u < usuário>] [-t < tipo>]
    [-P < porta>] [-p < password>] [-k < ssh_key_id_file>] [-c < comentário>]
-n < nome> Nome da conexão a ser salva
-i < ip> IP ou nome do host
-t < tipo> Tipo de conexão, as seguintes são suportadas: ssh telnet ftp sftp
-u < usuario> Usuário no servidor remoto
-P < porta> Número da porta (Se não especificado se usará a padrão para o tipo de conexão)
-p < password> Senha para o usuario, se não especificada, ou se conter um hífen (-), então a senha será pedida (Opção não suportada com -k)
-k < key_id_file> Chave de autorização SSH, opção não suportada com -p
-c < comentário> Comentário para a conexão

(Todos parametros são opcionais, exceto < novo_nome>)

Mostrar conexões e configuração:

-lc Lista conexões
-lg Lista grupos
-lp Lista preferencias

Mostrar detalhes de uma conexão ou grupo:

  ac -s < nome> [-e]  Onde nome é uma conexão ou grupo salvo

(Se utilizado com -e, as senhas serão mostradas)

Mostrar ajuda:

-h Mostra essa ajuda e termina.

O script pode ser baixado em https://sourceforge.net/p/autoconnector

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de André Marques Saunite