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_keysAgora 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/configAbaixo 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.pemAdicione 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 clientaIsso 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_htmlO 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:~/docsIsso 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.htmlO 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 lsO 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 nowDiretó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 ~/binEm seguida, abra o arquivo ~ / .profile em um editor de texto com o comando:
nano $HOME/.profileRole 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" fiSalve 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 --versionSe 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 sshfsAgora 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/clientbContinue 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_clientaModifique 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/clientaSalve 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_clientaAgora, 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_clientaO 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.

