quinta-feira, 2 de fevereiro de 2017

seucurso.com.br

Usando o RSH para executar comandos remotos no Linux

Para testar esse tutorial irei utilizar duas máquinas virtuais montadas no Oracle VM Virtual Box baseadas no sistema operacional Windows 8. Nas máquinas virtuais foi instalado o Debian, mas com a instalação mínima, sem nenhum pacote que não seja o sistema básico.

O primeiro passo é garantir que você tem sempre a sua distribuição atualizada:

1.apt-get update

2.apt-get dist-upgrade

3.apt-get autoclean

4.  

É necessário que as máquinas virtuais possuam nome de host diferente e também IP diferente, mas que possam se comunicar uma com a outra. Para isso, nas configurações, para interface de rede  selecione rede interna. Você pode configurar e visualizar os endereços IPs das VMs usando o comando ifconfig:

Ifconfig na máquina virtual um:

Ifconfig na máquina virtual dois:

E, em seguida, testar a comunicação entre elas usando o comando ping.

O ping entre a máquina um e dois:

E o ping entre a máquina dois e um:

Com isso saberemos exatamente o que é necessário instalar ou não e poderemos simular dois computadores e enviar comandos entre eles. Para esse envio de comandos remotamente irei utilizar o RSH.

RSH é o acrônimo para Remote Shell, e é composto pela porção servidora (rsh-server) e cliente (rsh-client). Segundo sua própria definição (veja nas páginas de manual) o rsh é um comando para copiar a entrada padrão para um comando remoto, a saída padrão do comando remoto para a saída padrão local e o mesmo para a saída de erro padrão, ou seja, o comando é executado em um computador remoto, mas todas as suas saídas são redirecionadas para o computador local.

O rsh é muito utilizado para envio de comandos remotos entre nós de cluster, por exemplo.

Para instalar o rsh-server e cliente use o seguinte:

1.apt-get install rsh-server

e

1.apt-get install rsh-client

Agora vamos configurar a resolução de nomes das máquinas. Isso é importante pois o rsh usará os nomes e não os endereços IPs.

Edite o arquivo /etc/hosts, mas lembre-se de fazer isso com permissões de super usuário:

Você terá que fazer isso nas duas máquinas, na um insira:

Onde debian2 é o nome da sua máquina dois.

Na máquina dois:

Onde debian é o nome da sua máquina um.

Você pode testar se deu tudo certo usando novamente o ping, mas ao invés do endereço IP das máquinas use o nome delas.

Entre a máquina um e dois:

Entre a máquina dois e um:

Ainda há mais uma configuração a ser feita. No diretório corrente do seu usuário (~) crie um arquivo chamado .rhosts, nele deve conter o nome do host e usuário que terá permissão de acesso remoto.

Por exemplo, na máquina um criarei o arquivo .rhosts com o conteúdo:

Isso informa que o usuário root terá permissões remotas se conectar-se a partir do host debian2.

Você pode usar o caractere + (soma) para dizer todos, por exemplo:

Isso diz que o usuário root terá permissões remotas de qualquer host.

Faça o arquivo .rhosts da máquina dois também, com:

Para finalmente testar os rsh vamos tentar executar um comando date remotamente, mas antes vamos alterar a data e hora da máquina dois:

Com isso, ao executar o comando remoto, saberemos que a data e hora que aparecer será a do computador remoto! Ok, na máquina um vamos executar:

O resultado será a data e hora da máquina dois que ajustamos há pouco, com alguns segundos passados:

Tente o inverso também, na máquina dois tente:

O resultado deverá ser a data e hora da máquina um:

0 comentários: