No momento, estou tentando configurar um servidor SSH para que o acesso a ele de fora da rede seja permitido SOMENTE usando uma chave SSH e não permita o acesso ao root ou por qualquer outra combinação de nome de usuário/senha.
Ao mesmo tempo, os usuários internos da rede ainda precisam se conectar ao mesmo sistema, mas esperam fazer login no sentido mais tradicional com um nome de usuário e senha.
Os usuários externos e internos acessarão o sistema a partir do Windows usando PuttySSH e o acesso externo entrará no sistema através de um firewall de encaminhamento de porta que abrirá a porta de origem para o mundo externo em alguma porta numerada arbitrariamente escolhida como 55000 (ou o que os administradores decidirem)
O diagrama a seguir tenta mostrar melhor os fluxos de tráfego.
Eu sei como configurar o login real para usar apenas chaves, e sei como negar root, o que não sei é como separar os dois tipos de login.
Eu havia considerado executar duas cópias do SSHD escutando em portas diferentes no mesmo IP e ter duas configurações diferentes para cada porta.
Também considerei configurar uma regra de "correspondência", mas não tenho certeza se posso separar as configurações de todo o servidor usando essas opções.
Finalmente, a pessoa externa que efetua o login será sempre o mesmo usuário, vamos chamá-lo de "Frank" para os propósitos desta pergunta, portanto, "Frank" só poderá fazer login a partir do IP externo e nunca estará sentado na frente de qualquer sistema se conectando internamente, enquanto todos os outros usuários do sistema só se conectarão internamente e nunca se conectarão a partir de um IP externo.
Franks IP do qual ele se conecta é um atribuído dinamicamente, mas o IP público que ele está conectando também é estático e nunca mudará, o IP interno do encaminhador de porta também nunca mudará e nem o endereço IP interno do servidor SSH .
Os clientes internos sempre se conectarão a partir de um IP na faixa de rede privada da qual o IP dos servidores SSH internos faz parte e é uma máscara de 16 bits EG: 192.168.0.0/16
Essa configuração é possível, usando um arquivo de configuração e uma instância do servidor SSH? Se sim, como faço?
ou
Estou muito melhor usando 2 servidores em execução com configuração diferente?
Para ref, o servidor SSH está sendo executado no Ubuntu 18.04.