Por que “ssh user@machine1” não requer senha, mas “ssh root@machine2” exige?

Por que “ssh user@machine1” não requer senha, mas “ssh root@machine2” exige?

Isto é devido a um problema de login da DigitalOcean que pesquiseidepois de ler esta pergunta no site oficial de suporte da DigitalOcean. Eu estava recebendo rejeições com minha inicial:

ssh root@$IP_DO

No link acima, primeiro reduzi para:

ssh -o "IdentitiesOnly yes" -i ~/.ssh/id_rsa root@$IP_DO

Quando fiz o acima, ele pediu uma senha. Abri meu gerenciador de senhas e, com certeza, defini uma senha para essa chave. Entre e eu entrarei.

(Se for importante, inseri a chave pública quando configurei minha conta Digital Ocean e apenas a escolhi para criar o droplet).

Um pouco ssh-add ~/.ssh/id_rsa, digitei a senha uma vez e agora a DigitalOcean não está mais solicitando uma senha.

Mas, mesmo antes de fazer o ssh-add acima, eu sempre poderia fazer ssh em VMs do Virtualbox em um servidor na minha LAN, sem problemas. Estas são VMs bitnami, aliás.

Em ambos os casos, DigitalO cean e VM ~/.ssh/authorized_keysmostram a mesma coisa:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC35MyHYQPWgHgxOffs2oI4jAJCTSldYr1tMb/LMogbTXtQW35mSsWexiwYjPIcdkkOl2Zqrt43696U1oZco90ibkFrbbXrqDGZssbaqfqk7

E olhando para/etc/ssh/sshd_config

Oceano Digital:

egrep 'Authentication|PAM|Pass' /etc/ssh/sshd_config | grep -v '^#
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM yes

uname -rv
4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017

VM Bitnami

egrep 'Authentication|PAM|Pass' /etc/ssh/sshd_config | grep -v '^#'
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes

uname -rv
3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26)

Agora, lendo mais sobre esse tópico, é aconselhável executar ssh-add ~/.ssh/id_rsa. Isso pediu a senha da chave.

Agora, tanto a DigitalOcean quanto a VM funcionam sem senha, mas estou curioso para saber por que a VM nunca precisou da senha e a DigitalOcean sim?

Responder1

OK, resolvi e tenho certeza de que sei o que aconteceu.

SSL tentará public_keys remotos armazenados emchaves_autorizadasvs chaves locais usando um sistema de desafio. Você realmente não sabe ou controla a sequência do que ele tenta.

A raiz da máquina1 (VM) ~/.ssh/authorized_keysapontou para uma das minhas chaves que não estava protegida por senha, digamosGitHub. Também teveid_rsa, mas nunca perguntei sobre isso porque chegou antesid_rsa, usandoGitHub.

A raiz da máquina2 (Digitalocean) ~/.ssh/authorized_keysnão incluiu uma referência ao meu desprotegidoGitHubchave de identidade, então finalmente chegouid_rsa. Desde queid_rsaA identidade de não foi carregada no agente ssh e, como é protegida por senha, fui solicitada a senha.

Observe que isso contradiz minha afirmação de que as chaves autorizadas eram as mesmas. A entrada de id_rsa estava em ambos os arquivos, mas havia outras chaves públicas na VM Bitnami.

informação relacionada