Gerencie com eficiência conexões SSH remotas com esses comandos Linux

Se você executa um ou mais servidores remotos, normalmente gasta tempo fazendo login constantemente ao longo do dia.

Mas não tem que ser assim. É hora de você aprender a fazer login de forma eficiente via SSH com apenas um alias, transferir arquivos ou diretórios únicos, executar comandos SSH remotos e montar servidores remotos em diretórios locais sem esforço.

Arquivo de configuração SSH

Uma grande economia de tempo é o arquivo de configuração SSH localizado em ~ / .ssh / config . Comece criando um diretório para armazenar todas as chaves SSH que você usa para fazer login nos servidores com o comando:

 mkdir -m 0600 $HOME/.ssh_keys

Agora copie todos os seus arquivos de chave SSH para este diretório (por exemplo, clienta.pem, clientb.pem, etc.). Em seguida, abra o arquivo ~ / .ssh / config em um editor de texto executando o comando:

 nano ~/.ssh/config

Abaixo está um exemplo de entrada que estabelecerá uma conexão SSH com um servidor remoto:

 host clienta
 hostname 124.58.2276.80
 user ubuntu
 IdentityFile ~/.ssh_keys/clienta.pem

Adicione seções de linhas como as acima ao arquivo ~ / .ssh / config , uma para cada servidor desejado. Em seguida, salve e feche o arquivo pressionando Ctrl + X e siga o prompt. Depois de salvo, você pode agora fazer login em qualquer servidor via SSH a partir de qualquer diretório no terminal com o comando simples:

 ssh clienta

Isso irá instantaneamente conectá-lo ao servidor com as informações no host clienta que você especificou no arquivo ~ / .ssh / config .

Transferir arquivos com Scp / Rcp

Sem criar uma sessão de login persistente, você pode facilmente fazer upload de arquivos ou diretórios únicos para um servidor remoto com o comando scp , como:

 scp report.pdf clienta:~/

O comando acima carregará o arquivo report.pdf de seu computador local para o diretório inicial do servidor clienta que você definiu na seção acima. Você pode fazer upload para um diretório diferente do diretório inicial, como:

 scp about.html clienta:/home/clienta/public_html

O acima irá carregar o arquivo about.html para a casa / cliente diretório / / public_html no servidor clientâ remoto. Também é possível fazer upload de diretórios inteiros usando a opção -r , como:

 scp -r Documents clienta:~/docs

Isso carregará todo o diretório ~ / Documents do seu computador local para o diretório ~ / docs do servidor remoto.

Baixando arquivos

Da mesma forma, você pode baixar arquivos ou diretórios para o seu computador local sem criar uma sessão de login persistente usando o comando rcp , como:

 rcp clienta:~/public_html/about.html myproject/about.html

O acima irá baixar o arquivo public_html / about.html do servidor clientâ remoto, e colocá-lo nos projetos / about.html arquivo em seu computador local.

Executar comandos SSH remotos

Outra dica rápida é que você pode executar comandos Linux únicos em um servidor remoto sem uma sessão de login persistente, como:

 ssh clienta ls

O comando acima irá executar o comando ls no servidor cliente remoto e listar todos os arquivos / diretórios sem mantê-lo conectado ao servidor. Por exemplo, se você quiser reiniciar um servidor, pode usar:

 ssh clienta /sbin/shutdown -rf now

Diretório local / bin

Vamos expandir isso, permitindo fácil montagem em servidores remotos, criando um diretório / bin / que é local para nossa conta de usuário. Abra o terminal em seu computador e crie um diretório / bin / executando o comando:

 mkdir -m 0755 ~/bin

Em seguida, abra o arquivo ~ / .profile em um editor de texto com o comando:

 nano $HOME/.profile

Role para baixo até o final do arquivo e adicione as seguintes linhas, copiando-as para sua área de transferência e, em seguida, no terminal pressionando Ctrl + Shift + V :

 if [ -d "$HOME/bin" ] ; then
 PATH="$HOME/bin:$PATH"
 fi

Salve e feche o arquivo pressionando Ctrl + X e siga o prompt. Isso salvará o arquivo .profile , que verificará o diretório / bin / local recém-criado para quaisquer comandos que você tentar executar.

Adicionando Comandos de Montagem Remota

Primeiro, verifique se o sshfs está instalado ou não no seu computador com o comando:

 sshfs --version

Se isso imprimir a versão atual do sshfs , está tudo pronto. Caso contrário, se você receber um erro "command not found", poderá instalar o sshfs com o seguinte comando:

 sudo apt-get -y install sshfs

Agora crie um diretório / mnt / que conterá todos os diretórios montados em nossos servidores remotos. No terminal, execute os comandos como:

 mkdir -m 0755 ~/mnt
 mkdir -m 0755 ~/mnt/clienta
 mkdir -m 0755 ~/mnt/clientb

Continue criando um subdiretório para cada servidor remoto no qual você possa montar. A seguir, vamos criar os comandos shell que executaremos e, por exemplo, para o servidor clienta, abra um arquivo executando o seguinte comando no terminal:

 nano ~/bin/mount_clienta

Modifique a linha abaixo conforme necessário com as informações de servidor adequadas e, em seguida, copie e cole no editor de texto em branco no terminal pressionando Ctrl + Shift + V :

 #!/bin/bash
 sshfs -o IdentityFile=~/.ssh_keys/clienta.pem [email protected]:/var/www ~/mnt/clienta

Salve e feche o arquivo pressionando Ctrl + X e siga as instruções para fechar o arquivo. Por fim, altere as permissões do arquivo para que seja executável executando o comando:

 chmod 0755 ~/bin/mount_clienta

Agora, a qualquer momento que você precisar montar no servidor remoto de clienta para transferir arquivos de / para ele, a partir de qualquer diretório dentro do terminal, você pode simplesmente executar o comando:

 mount_clienta

O diretório em seu computador local em ~ / mnt / clienta agora será montado no diretório / var / www do servidor remoto. Você pode começar a copiar arquivos de e para o diretório da mesma forma que faria com qualquer diretório local, e as operações necessárias ocorrerão no servidor remoto.

Gerenciamento de conexão mais eficiente

Esperançosamente, as dicas acima ajudaram a agilizar e tornar mais eficiente o gerenciamento de suas conexões com servidores remotos. Neste artigo, você aprendeu tudo sobre o arquivo ~ / .ssh / config, que permite fazer o login via SSH com apenas um alias, transferir arquivos / diretórios únicos, executar comandos SSH remotos e como montar facilmente um diretório local em servidores remotos.