Copiar arquivos e executar comandos por meio de SSH
A conexão com o servidor via SSH é um dos principais meios de gerenciar servidores *nix. Muitas vezes, é necessário fazer upload de um arquivo para um servidor remoto ou descarregá-lo, mas não há outro meio além da conexão SSH. Felizmente, uma das funções regulares desse protocolo é copiar arquivos por meio de uma conexão segura. Você pode implementá-lo usando um comando scp em sistemas Linux ou usando pscp.exe, que faz parte do cliente Putty SSH no sistema operacional Windows.
Usando o sistema operacional Linux
Execute os seguintes comandos:
Se um servidor remoto servir como diretório de origem ou de destino, execute os seguintes comandos:
Depois de executar o comando, você precisa digitar a senha da conta do servidor remoto.
Em resumo, você pode copiar o arquivo local denominado: /home/user/file.tgz para o diretório home do usuário root do servidor remoto 123.123.123.123 executando o seguinte comando:
Para baixar o mesmo arquivo de um servidor remoto:
Você pode copiar vários arquivos de uma vez. Para fazer isso, você deve adicioná-los como a origem. Separe-os por um espaço - o último parâmetro será considerado como o diretório de destino. Por exemplo, para fazer upload de file1 files.tgz e file2.tgz do diretório local para o servidor remoto, você deve executar o comando:
Para copiar o diretório, você precisará usar o modificador de comando -r. Copie o diretório local /home/user/dir para o servidor remoto:
Quando o servidor SSH estiver sendo executado em uma porta não padrão, precisaremos obter a ajuda da opção P. Se você precisar usar a porta 10022:
Para saber quais outros modificadores você pode usar, basta executar scp sem parâmetros e ler a ajuda.
Usando o sistema operacional Windows
Ao usar o sistema operacional Windows e o Putty como cliente, a formatação do comando permanece a mesma. No entanto, mudaremos o nome do arquivo executável. Precisamos usar uma sintaxe para especificar caminhos para arquivos e diretórios do Windows ao mencionar os diretórios de origem ou de destino. Execute a linha de comando (cmd.exe) ou o PowerShell, abra o diretório com o arquivo pscp .exe e digite o comando:
Se você o executar de outra pasta, precisará especificar o caminho completo para pscp.exe. Se algum dos caminhos contiver espaços, será necessário usar aspas duplas - "caminho do arquivo":
Basta executar o pscp (de forma semelhante ao scp) sem parâmetros e ler a ajuda sobre os modificadores, bem como as informações sobre a sintaxe do comando.
Execução de comandos em um servidor remoto usando a conexão SSH
O protocolo SSH é compatível com a execução de sessões interativas e de comandos e scripts regulares em um servidor remoto.
Usando o sistema operacional Linux
Sintaxe do comando:
Digite a senha do usuário especificado e obtenha a saída do comando no console SSH, se houver.
Por exemplo, podemos encontrar informações sobre o sistema operacional instalado no servidor remoto:
Para executar vários comandos usando uma única conexão, você pode usar o caractere ";" como separador. Verifique as configurações de rede e as conexões de rede ativas no servidor remoto:
Se precisar executar um arquivo de script local em um servidor remoto: execute o interpretador de comandos (no modo de execução de script). Ele pode ser o bash com a tecla-s e passar o arquivo de script para ele na entrada padrão. Dê uma olhada no exemplo abaixo:
O arquivo local: /home/user/myscript.sh será executado em um servidor remoto.
A execução do comando SSH sem parâmetros permite que você veja uma breve referência de sintaxe e uma lista de modificadores adicionais que permitem ampliar a funcionalidade do comando.
Usando o sistema operacional Windows
Para nos conectarmos ao servidor remoto, usaremos o cliente Putty com seu arquivo executável plink.exe. Arquivo, se nosso computador for compatível com o Windows. Use a linha de comando (cmd.exe) ou o PowerShell para trabalhar com esse arquivo.
Para executar o comando em um servidor remoto, use a seguinte sintaxe:
Verifique a configuração das interfaces de rede:
O plink.exe permite que você use ";" como separador para executar vários comandos, da mesma forma que o comando SSH no Linux:
Você pode executar comandos de um arquivo local usando uma chave adicional m:
Ao executar o comando plink.exe sem parâmetros, você pode encontrar uma breve referência de sintaxe e uma lista de modificadores de comando adicionais.