![o acesso ssh com certificado privado funciona no host local e não no remoto](https://rvso.com/image/169433/o%20acesso%20ssh%20com%20certificado%20privado%20funciona%20no%20host%20local%20e%20n%C3%A3o%20no%20remoto.png)
Sou novato em Gnu/Linux e UNIX. Estou jogando um jogo para aprender o básico deste sistema operacional.
Como parte do jogo que estou jogando, preciso fazer logon em um servidor remoto usando ssh
, tendo apenas o certificado da chave privada e o nome de usuário (sem senha).
- Se eu fizer login usando SSH na máquina remota (onde estou conectado com outro nome de usuário), terei acesso sem nenhuma senha.
- Se eu tentar fazer login na minha máquina local, o SSH me solicitará uma senha.
Isso é consequência de uma configuração SSH do servidor que estou tentando acessar?
Quero dizer, o SSH pode aplicar políticas de login diferentes se eu efetuar login no host local (neste caso, o servidor) e se eu efetuar login em uma máquina remota (neste caso, meu PC)?
Muito obrigado.
Atenciosamente.
Responder1
Isso é consequência de uma configuração SSH do servidor que estou tentando acessar?
Com base nos detalhes que você compartilhou, não podemos ter certeza. Você pode até estar se conectando a dois daemons SSH distintos e configurados de forma independente em execução no mesmo sistema.
Quero dizer, o SSH pode aplicar políticas de login diferentes se eu fizer login no localhost (neste caso, o servidor) e se eu fizer login em uma máquina remota (neste caso, meu PC)?
Sim, os servidores SSH podem aplicar políticas diferentes com base em várias propriedades das conexões de entrada.
Por exemplo, a Match
palavra-chave na sshd
configuração do OpenSSH permite definir blocos condicionais que agrupam diretivas que só são aplicadas (e substituem aquelas definidas anteriormente) se uma lista de condições especificadas for atendida (veja, para detalhes,man 5 sshd_config
).
Adicionando este bloco a /etc/ssh/sshd_config
(a localização exata pode variar, dependendo do seu sistema):
PubkeyAuthentication yes
Match Address "!127.0.0.1,!::1,*"
PubkeyAuthentication no
instruirá sshd
a:
- permitir autenticação de chave pública por padrão;
- proibir a autenticação de chave pública para conexões provenientes de outros endereços que não
127.0.0.1
e::1
.
(Nota para evitar dores de cabeça: conforme indicado emman 5 ssh_config
, "PADRÕES",
[...] um jogo negado nunca produzirá um resultado positivo por si só. [...] A solução aqui é incluir um termo que produza uma correspondência positiva, como um curinga [...]
é por isso que "!127.0.0.1,!::1,*"
inclui um *
no final).