Eu rotineiramente faço login em muitos servidores remotos por meio de SSH. Eu uso uma chave SSH pública/privada para fazer login sem precisar digitar minha senha ( https://linuxize.com/post/how-to-setup-passwordless-ssh-login/ ).
Porém, se eu precisar fazer alguma sudo
operação em um dos servidores remotos, preciso lembrar minha senha. Por segurança, normalmente uso senhas distintas geradas aleatoriamente para cada servidor, portanto, ter que encontrar a senha correta para copiar/colar é um pouco chato.
Existe uma solução melhor?
Altere sua configuração do sudo para NÃO exigir uma senha
Desative logins ssh baseados em senha (opcionalmente, exceto para uma conta de segurança) e quebre as regras sobre senhas (use a mesma senha simples)
Use pam_ssh_agent_auth (o processo de configuração do sudo é descrito na página de manual). Observe que o efeito disso é MUITO semelhante a 1, com exceção de scripts executados fora da sua sessão (por exemplo, via crond, atd etc).
Use uma plataforma de gerenciamento de acesso privilegiado como CyberArk
Senhas específicas de host para uso interativo são difíceis para os humanos, assim como uma política inadequada.
Comece com um fator de autenticação melhor do que senhas. Suas chaves ssh são um exemplo óbvio para sistemas Linux ou POSIX, existem outros. Chaves ou certificados pessoais só para você, para que seu acesso possa ser rastreado. Use-os em todos os hosts, como em um diretório central de usuários.
Para usuários não humanos automatizados, esse único fator de autenticação forte deve ser suficiente. Senhas e outros fatores de autenticação secundários focados em pessoas são difíceis de automatizar. Eles precisam ser fornecidos em texto simples, sem interação, o que vai contra o propósito. Em vez disso, concentre-se em melhorar os processos relacionados à automação, garantindo que apenas os scripts aprovados sejam executados, e não por uma pessoa.
Para uso interativo por um ser humano, as senhas ainda não são ótimas, mas podem ser fáceis de implementar outro fator de autenticação de qualquer maneira. E assim, para uma pessoa, as regras sudo para acesso privilegiado podem usar PASSWD. Use sua senha gerenciada centralmente, novamente possivelmente em um diretório de usuários.
Sim, você poderia hospedar senhas específicas para seu acesso, procurá-las em um gerenciador de senhas seguro e colá-las. Em vez disso, você pode pular o gerenciador de senhas e digitar uma senha longa e fácil de lembrar que você usa em qualquer lugar. Como o XKCD 936 prometeu, não posso esquecer o "grampo correto da bateria do cavalo", mesmo que tentasse.
Em teoria, uma senha usada apenas em um subconjunto de hosts fica menos exposta quando comprometida, mas perder qualquer credencial privilegiada não é bom. Como você sabe que um invasor não usou isso para obter acesso persistente aos seus sistemas?
Contas e senhas separadas poderiam ser justificadas para sistemas críticos de segurança. Por exemplo, sistemas de gerenciamento de segredos, diretórios de usuários, sistemas de arquivamento de backup. Uma credencial comprometida pode resultar em exfiltração de dados e exposição a resgate. Portanto, evite usar sua conta normal para acesso privilegiado.