Para trabalhar no sistema remoto, primeiro, você efetua login nesse sistema, executa comandos para executar tarefas diferentes e depois 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 locais e remotos lado a lado, você precisa alternar entre eles várias vezes. Faça login e saída de um sistema várias vezes pode ser irritante. Deve haver uma maneira de permitir que você execute comandos em um sistema remoto sem fazer login.Felizmente, existe uma maneira de mostrar como executar comandos em um sistema remoto sobre SSH diretamente da sua máquina local.
Pré -requisitos
Como pré -requisitos, você deve ter:
Nota: Os comandos mencionados neste tutorial foram executados no Ubuntu 20.04 LTS (fossa focal) terminal, que pode ser aberto através do atalho Ctrl+Alt+T. Os mesmos comandos também são aplicáveis ao Linux Mint e Debian.
Execute os comandos Linux no sistema remoto sobre SSH
Para executar um comando em um sistema remoto do sistema local, use a seguinte sintaxe:
$ ssh
Onde nome de usuário O usuário é no sistema remoto, HostName/ip_address é o nome do host ou o endereço IP do sistema remoto. O Comando/script é o comando ou script que você deseja executar no sistema remoto.
Se o SSH estiver em execução em alguma porta que não seja a porta padrão, certifique -se de mencioná -lo usando o sinalizador -p da seguinte forma:
$ ssh -p
Execute o comando único no sistema remoto
Digamos que você precise encontrar o nome do host do sistema remoto. Nesse caso, o comando que você precisa executar no sistema local seria:
$ ssh [email protected] 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 incluir o comando em um único (") ou duplo vírgulas invertidas (" ") como esta:
$ ssh [email protected] "nome de anfitrião"
Executar vários comandos no sistema remoto
Se você precisar executar vários comandos no sistema remoto sobre SSH, separe -os usando (;) ou (&&) e inclua -os em vírgulas invertidas (""). Se você não colocar os vários comandos em vírgulas invertidas, 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; comando2 ”
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 no sistema local:
$ ssh -t [email protected] “Mkdir myfiles && ls”
Agora, você será solicitado a fornecer a senha para o usuário remoto. Digite a senha e pressione Enter.
A seguir, a saída dos comandos executados em um sistema remoto. O segundo comando "LS" será executado apenas 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 a atualização do sistema apenas se as atualizações forem bem -sucedidas.
Usando o; separador
Se você usar o separador (;), o segundo comando será executado, independentemente de o primeiro comando ter sido bem -sucedido ou não. Por exemplo, para executar comandos "HostName" e "Ip R" no sistema remoto, você precisará emitir o seguinte comando no sistema local:
$ ssh [email protected] "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, a saída dos comandos executados em um sistema remoto. O segundo comando "ip r" será executado mesmo que o primeiro comando não tenha êxito.
Execute o comando no sistema remoto com privilégios sudo
Alguns comandos no Linux requer privilégios elevados, como instalar ou remover qualquer software, para adicionar ou remover um usuário, alterando as configurações do sistema, etc. Quando você executa um comando nos sistemas remotos que exigem privilégios de sudo, você será solicitado pela primeira vez a senha do usuário remoto e, em seguida, será solicitado que a senha do sudo execute 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 [email protected] “Atualização de sudo apt”
A seguir, a saída do comando executado em um sistema remoto com privilégios elevados.
NOTA: Então -t a opção é usada aqui para alocar com força o 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 pode ser salva 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 chamado IP.txt na área de trabalho da máquina local.
$ ssh -t [email protected] “Ifconfig”> ~/Desktop/ip.TXT
Execute o 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 de amostra.SH no sistema local.
$ sudo nano amostra.sh
Adicione as linhas abaixo no arquivo de script:
#!/BIN/BASH
data
nome de anfitrião
rota IP
ping -c 3 google.com
Agora, salve e feche o script.
Agora, para executar a amostra de script.SH No sistema remoto, emita o comando abaixo no terminal:
$ ssh -t [email protected] 'Bash -s; < sample.sh
Aqui está a saída depois que o script é executado em um sistema remoto:
Isso é tudo o que há para isso! Neste tutorial, mostramos como executar comandos em um sistema remoto sobre SSH. Isso facilita muito o trabalho no sistema remoto e também o salva do incômodo de fazer login e sair do sistema remoto várias vezes.