ssh

Como executar comandos do Linux em sistema remoto por SSH?

Como executar comandos do Linux em sistema remoto por SSH?

Para trabalhar no sistema remoto, primeiro você efetua login nesse sistema, executa comandos para realizar diferentes tarefas e, em seguida, efetua logout dessa sessão. Mesmo para executar um único comando em um sistema remoto, você precisa passar por todas as etapas. Enquanto trabalha nos sistemas local e remoto lado a lado, você precisa alternar entre eles várias vezes. Entrar e sair de um sistema várias vezes pode ser irritante. Deve haver uma maneira que permite que você execute comandos em um sistema remoto sem fazer login nele.Felizmente, há uma maneira de mostrar a você como executar comandos em um sistema remoto por SSH direto de sua máquina local.

Pré-requisitos

Como pré-requisitos, você deve ter:

Nota: os comandos mencionados neste tutorial foram executados no Ubuntu 20.04 Terminal LTS (Focal Fossa), que pode ser aberto através do atalho Ctrl + Alt + T. Os mesmos comandos também são aplicáveis ​​para Linux Mint e Debian.

Executar comandos do Linux em sistema remoto por SSH

Para executar um comando em um sistema remoto de seu sistema local, use a seguinte sintaxe:

$ ssh

Onde nome do usuário é o usuário no sistema remoto, hostname / IP_Address é o nome do host ou endereço IP do sistema remoto. O Comando / Script é o comando ou script que você deseja executar no sistema remoto.

Se o SSH estiver sendo executado em alguma porta diferente da porta padrão, certifique-se de mencioná-lo usando a sinalização -p da seguinte maneira:

$ ssh -p

Executar comando único no sistema remoto

Digamos que você precise encontrar o nome do host do sistema remoto. Nesse caso, o comando que você precisa para executar no sistema local seria:

$ ssh tin @ 192.168.72.148 nome de anfitrião

Agora, você será solicitado a fornecer a senha para o usuário remoto. Digite a senha e pressione Enter.

Na saída a seguir, “mypc” é o nome do host do sistema remoto.


Você também pode colocar o comando entre vírgulas simples (") ou duplas (“ ”) como este:

$ ssh tin @ 192.168.72.148 "nome de anfitrião"

Execute vários comandos no sistema remoto

Se você precisar executar vários comandos no sistema remoto por SSH, separe-os usando (;) ou (&&) e coloque-os entre vírgulas (“”). Se você não colocar os vários comandos entre aspas, então apenas o primeiro comando será executado na máquina remota e os outros comandos serão executados na máquina local.

$ ssh   “Command1 && command2”

ou

$ ssh   “Command1; command2 ”

Usando o separador &&

Se você usar o separador (&&), o segundo comando será executado apenas se o primeiro comando for executado com sucesso. Por exemplo, para executar os comandos “mkdir” e “ls” no sistema remoto, você precisará emitir o seguinte comando em seu sistema local:

$ ssh -t tin @ 192.168.72.148 “Mkdir meusarquivos && ls”

Agora, você será solicitado a fornecer a senha para o usuário remoto. Digite a senha e pressione Enter.

A seguir está a saída dos comandos executados em um sistema remoto. O segundo comando “ls” só será executado no sistema remoto se o primeiro comando “mkdir” for bem sucedido.


Este comando também é útil ao atualizar o sistema. Geralmente, uma atualização do sistema é realizada após uma atualização. Portanto, usando o comando acima, você pode fazer com que a atualização do sistema seja executada apenas se as atualizações forem bem-sucedidas.

Usando o; separador

Se você usar o separador (;), o segundo comando será executado independentemente se o primeiro comando foi bem sucedido ou não. Por exemplo, para executar os comandos “hostname” e “ip r” no sistema remoto, você precisará emitir o seguinte comando em seu sistema local:

$ ssh tin @ 192.168.72.148 "nome de anfitrião ; ip r ”

Agora, você será solicitado a fornecer a senha para o usuário remoto. Digite a senha e pressione Enter.

A seguir está a saída dos comandos executados em um sistema remoto. O segundo comando “ip r” será executado mesmo se o primeiro comando não for bem sucedido.

Executar Comando em Sistema Remoto com Privilégios Sudo

Alguns comandos no Linux requerem privilégios elevados, como instalar ou remover qualquer software, adicionar ou remover um usuário, alterar as configurações do sistema, etc. Quando você executa um comando em sistemas remotos que requerem privilégios de sudo, primeiro será solicitada a senha do usuário remoto e, em seguida, será solicitada a senha de sudo para executar o comando.

Por exemplo, para atualizar os repositórios do sistema no sistema remoto, você precisará executar o seguinte comando em seu sistema local:

$ ssh -t tin @ 192.168.72.148 “Atualização do apt sudo”

A seguir está a saída do comando executado em um sistema remoto com privilégios elevados.


Nota: A opção -t é usada aqui para forçar a alocação de tty.

Execute o comando no sistema remoto e salve sua saída no sistema local

A saída dos comandos executados nos sistemas remotos também podem ser salvos no sistema local. Por exemplo, o comando a seguir executará o comando ifconfig no sistema remoto e, em seguida, salvará sua saída em um arquivo denominado ip.txt na área de trabalho da máquina local.

$ ssh -t tin @ 192.168.72.148 “Ifconfig”> ~ / Desktop / ip.TXT

Executar script local no sistema remoto

O script colocado no sistema local também pode ser executado no sistema remoto. Vamos explicar isso criando um script chamado sample.sh no sistema local.

Amostra de $ sudo nano.sh

Adicione as linhas abaixo no arquivo de script:

#!/ bin / bash
data
nome de anfitrião
rota de ip
ping -c 3 google.com

Agora, salve e feche o script.


Agora, para executar o exemplo de script.sh no sistema remoto, emita o comando abaixo no Terminal:

$ ssh -t tin @ 192.168.72.148 'bash -s; < sample.sh

Aqui está a saída depois que o script é executado em um sistema remoto:


Isso é tudo que há para fazer! Neste tutorial, mostramos como executar comandos em um sistema remoto por SSH. Isso torna o trabalho no sistema remoto muito fácil e também evita o incômodo de fazer login e logout do sistema remoto várias vezes.

Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...