Configurando o OpenSSH para usar o rhosts?

0

Eu alugo um par de VPSs rodando o ultimo Ubuntu, ambos com o OpenSSH. Eu gostaria de tentar login sem senha usando .rhosts / .shosts. Eu sei que isso não é recomendado, e que é melhor usar a autenticação de chave pública ... Eu só quero testar e saber como configurá-lo. Eu quero fazer o login no meu servidor / computador remoto do meu cliente / computador local sem senha. Estou usando uma conta de usuário normal não raiz no meu computador local e quero fazer login em uma conta com o mesmo nome de usuário no computador remoto.

Aqui está uma lista das minhas perguntas:

  • Devo listar o nome de host e o endereço IP do computador local em / etc / hosts no computador remoto? Devo também listar o nome do host / IP do computador remoto em / etc / hosts no computador local? O / etc / hosts é importante nisso tudo?
  • Qual é a diferença entre .rhosts e .shosts?
  • Pelo que entendi, o arquivo .rhosts / .shosts entra no diretório pessoal do usuário no computador remoto e só deve ser legível pelo proprietário. Ele deve conter linhas no formulário "hostname username" ... Isso está correto?
  • É possível deixar o nome de usuário se é o mesmo em ambos os computadores, ou deve ser declarado explicitamente em .rhosts / .shosts?
  • É possível usar esse mecanismo mesmo se eu tiver um nome de usuário diferente nos dois computadores (assumindo o nome que tenho, está em .rhosts / .shosts)?
  • Posso usar o endereço IP em vez de nomes de host em .rhosts / .shosts? Posso fazer isso se o / etc / hosts no computador remoto incluir esse emparelhamento?
  • Quais mudanças devo fazer em / etc / ssh / ssh_config e / ou / etc / ssh / sshd_config, tanto no computador remoto quanto no local?
  • É possível configurá-lo opcionalmente para evitar usar o / etc / ssh / ssh_known_hosts "global" e apenas usar meu local ~ / .ssh / known_hosts? Isso deve ser configurado no cliente / local, servidor / remoto ou ambos?
  • É possível configurá-lo opcionalmente para ignorar a (s) chave (s) -chave do (s) computador (es), ou seja, apenas procurando por .rhosts / .shosts e não autenticando o (s) computador (es) )? (Sim, eu sei que isso seria muito estúpido ... Eu só quero saber se isso pode ser feito.)
  • Devo usar os comandos rsh ou rlogin para que isso funcione ou o ssh também funcionará - se o restante estiver configurado corretamente?
  • É de alguma forma possível testar este mecanismo "localmente" - ou seja. no mesmo computador? Se eu tiver várias contas de usuário no mesmo computador, eu poderia adicionar um arquivo .rhosts / .shosts com entradas para "localhost", "127.0.0.1" e / ou o nome do host de meus computadores - junto com o nome de usuário da minha outra conta < em> no mesmo computador - e fazer com que este mecanismo funcione? Afinal, ssh pode logar em outras contas em "localhost" também ... Se for possível, como eu poderia configurá-lo?

Mais uma vez, estou apenas brincando e querendo aprender ... Eu sei que não é apenas inseguro, mas também um caso de cruzar a corrente para procurar água.

    
por Baard Kopperud 01.09.2015 / 16:19

1 resposta

1

A funcionalidade desejada não requer a configuração de confiança entre duas máquinas. Além disso, isso, como você mencionou corretamente, não é recomendado do ponto de vista de segurança.

O que você provavelmente deseja fazer (se quiser um login sem senha) no servidor remoto é o seguinte:

  1. em sua máquina local sob o seu usuário, gere uma chave sem senha usando ssh-keygen -t rsa e apenas pressionando a tecla Enter nos prompts de senha. Isso gerará uma chave sem uma frase secreta. Então, se alguém roubar a chave privada, eles poderão acessar seu servidor (a menos que você use um firewall para restringir o acesso ao servidor apenas ao seu endereço IP)
  2. copie a chave pública (por exemplo, ~ / .ssh / id_rsa.pub se você não alterou o nome do par de chaves na etapa anterior) para o servidor no diretório pessoal da conta desejada.
  3. sob sua conta desejada no servidor create (se não estiver lá) o diretório ~ / .ssh com mkdir -m700 -p ~/.ssh
  4. adicione o conteúdo da chave pública copiada na etapa 2 às ~ / .ssh / authorized_keys (ou, se o arquivo não estiver lá, basta renomear a chave pública copiada para esse nome)
  5. garanta que a propriedade e as permissões em ~ / .ssh e ~ / .ssh / authorized_keys sejam adequadas. Ambos devem ser de propriedade do usuário do diretório inicial e de seu grupo primário, o diretório ~ / .ssh deve ter permissão 0700 e ~ / .ssh / authorized_key deve ter 0600 permissões.

A partir deste ponto, conectar-se à conta desejada a partir de sua máquina local será sem senha (você pode usar ssh [email protected] se não tiver alterado o nome do par de chaves ou usar ssh -i ~/.ssh/name_of_your_private_key [email protected] se tiver alterado o nome da chave no passo 1),

Agora, se você ainda quiser seguir o caminho "totalmente inseguro" e estabelecer confiança entre as máquinas, este é o COMO VOCÊ está depois: link - Eu ainda não recomendo seguir esse caminho, a menos que você queira apenas ver como funciona. Mesmo neste caso, é questionável, já que é realmente uma má ideia do ponto de vista da segurança.

    
por 04.09.2015 / 14:12