Sempre se diz usar Secure Shell (SSH) em vez de Telnet ou rsh/rcp/rlogin, por motivos de segurança.
SSH e rsh são shells remotos. Eu me pergunto se o telnet também éum shell remoto? Se sim, por que é um shell remoto ou como devo entender que é um shell remoto?
A definição de um shell remotoé
O shell remoto (rsh) é um programa de computador de linha de comando que pode executar comandos shell como outro usuário e em outro computador em uma rede de computadores.
Eu pesquisei como o telnet é usado.O que eu descobri foi queum cliente telnet pode se conectar a um servidor telnet (ao conectar-se à porta telnet) ou a outro processo (ao conectar-se a uma porta diferente da porta telnet),que já está rodando em uma máquina servidora. Parece-me que o telnet não podeexecute, ou seja, inicie um comando shell em uma máquina servidora, que faz parte da definição de um shell remoto.
Quando procurei alternativas ao telnet baseado em UDP,alguns mencionaram isso netcat
e nc
são programas alternativos. Se eu estiver certo netcat
e nc
ambos estiverem acostumadosconectar-se a um processo já em execução em uma máquina, mas não paraexecutar, ou seja, iniciar um processo em uma máquina. Também sugere que o telnet é usado paraconectar-se a um processo já em execução em uma máquina, mas não paraexecutar, ou seja, iniciar um processo em uma máquina?
Se é verdade que o telnet é usado paraconectar-se a um processo já em execução em uma máquina, mas não paraexecutar, ou seja, iniciar um processo em uma máquina, por que é comparado ao SSH, visto que o SSH e o telnet estão fazendo coisas diferentes?
Obrigado.
obs:
Acabei de percebero artigo da Wikipedia para shell remotoparece ser para um programa específico rsh
e rshd
.
O que quero dizer com "shell remoto"na minha postagem há um tipo de programa ou protocolo que pode ser usado para conectar-se a uma máquina remota, iniciar um shell no controle remoto e iniciar comandos ou programas no shell.
Responder1
telnet
era a maneira tradicional de obter um shell remoto em uma máquina Unix em rede. rsh
foi o outro. ssh
é relativamente novo em comparação.
telnet
normalmente fala com um telnet remotodaemon(ou processo "servidor"). Nesse ponto, você se autentica com um nome de usuário e senha para fazer login e, em seguida, obtém um shell. Então, sim, é um método para obter um shell remoto.
O telnet
cliente também pode ser usado para outras conexões especificando outra porta (por exemplo, telnet host 80
irá conversar com o servidor web); este não é um shell remoto. É a combinação de telnet
conversação telnetd
e autenticação que fornece o shell remoto.
telnet
não é recomendado para shell remoto porque o nome de usuário e a senha normalmente são passados pela rede em texto simples; um sniffer de rede ou um ataque "man in the middle" pode roubar sua senha. Não é bom! ssh
criptografa o tráfego para ajudar a evitar isso.
Exemplo de telnet fornecendo um shell remoto:
% telnet server.name
Trying 192.168.100.100...
Connected to server.name
Escape character is '^]'.
NetBSD/i386 (server.name) (pts/51)
login: fred
Password:
Last login: Fri Jun 24 21:45:29 2016 from 192.168.1.1 on pts/23
No mail.
$ whoami
fred
$ pwd
/home/fred
$ logout
Connection closed by foreign host.