Uma frase-passe de chave SSH protege o ficheiro, não a rota
A frase-passe cifra o ficheiro de chave privada; não revoga a identidade nem protege a rota. Armazenamento separado, vida do agente e uso sem supervisão.
Um disco de cópia de segurança de um portátil antigo ainda contém uma chave privada SSH, e alguém pergunta se a VPN a protege. Não protege, e nunca protegeu. A VPN protege um caminho entre duas redes; a frase-passe protege o ficheiro; o agente protege uma sessão em execução. Três mecanismos diferentes, três modos de falha diferentes, e uma cópia roubada só se preocupa com os dois primeiros.
A frase-passe pertence ao ficheiro
Uma frase-passe de chave SSH cifra o material da chave privada em repouso. Não é a palavra-passe da conta enviada ao servidor, nem é a credencial usada para entrar na VPN. Confundi-las leva a alterações que não resolvem a exposição.
O manual do ssh-keygen do OpenSSH aborda o tratamento de frases-passe, incluindo o interruptor -p que define uma nova frase-passe numa chave que já existe.
Para uma chave existente, a forma do comando é simples, e reescreve o ficheiro:
ssh-keygen -p -f ~/.ssh/id_ed25519
Utilize o processo de manutenção e recuperação aprovado pelo proprietário da chave, porque isto é uma escrita, não uma inspeção. Não publique o ficheiro privado nem coloque uma frase-passe real numa linha de comandos partilhada. Mudar a frase-passe não recifra uma cópia tirada anteriormente. Registe a localização da cópia antiga no ticket para que o proprietário decida se a destrói.
Uma cópia sobrevive ao portátil e ao túnel
Depois de um ficheiro de chave ser copiado, a ligação VPN ativa do portátil já não diz nada sobre ele. O que importa é quão bem o próprio ficheiro está protegido, e que servidores ainda confiam na chave pública correspondente.
Mudar a frase-passe do ficheiro atual não toca na cópia, nem remove a mesma chave pública de authorized_keys num servidor. A revogação e a recifragem são ações separadas.
Por isso, trate uma chave privada divulgada como um evento de identidade, não de rede. Remova ou substitua a chave aceite através dos servidores e do processo de registo que a possuem. Parar a VPN limita uma rota num momento; não é uma revogação.
Desbloquear move o segredo para um agente
Um agente guarda identidades decifradas para autenticação posterior, para que o utilizador não volte a escrever a frase-passe em cada ligação. É uma comodidade com a sua própria fronteira de segurança.
O ssh-agent pode limitar quanto tempo uma identidade permanece carregada através da opção -t, e uma definição por identidade pode ultrapassar esse limite. Escolha a política para o agente que realmente executa em vez de assumir que desligar a VPN esquece todas as chaves carregadas.
Um processo comprometido depois de a chave ser desbloqueada é um problema diferente de um ficheiro cifrado roubado. Encaminhar o agente para outro anfitrião delega a capacidade de autenticação sem copiar o ficheiro da chave, por isso ative-o apenas para uma necessidade aprovada.
Liste o que o agente tem neste momento antes e depois de uma alteração:
ssh-add -l
Trabalhos sem supervisão precisam do seu próprio plano
Uma tarefa agendada não pode responder a um pedido. Precisa de um acordo aprovado de credenciais de máquina, e manter o segredo de desbloqueio no mesmo diretório da chave, legível pela mesma conta, não cria uma segunda fronteira.
Trabalhe com o proprietário do serviço na entrega de segredos suportada ou no funcionamento com hardware, e cubra renovação, falha e recuperação. Querer uma pessoa ao teclado muda o aspeto da falha em comparação com um anfitrião que arranca sem ninguém a vigiar.
Mantenha também a verificação de identidade do anfitrião no servidor e as suas restrições de conta. Uma rota VPN dá-lhe um caminho privado; não prova que cada ouvinte SSH que alcança seja o anfitrião pretendido. Registe o ouvinte e a impressão digital da chave do anfitrião no mesmo inventário que a própria chave.
Verifique as fronteiras separadamente
Teste cada fronteira com a sua própria pergunta. O ficheiro abre sem a frase-passe? O agente ainda guarda a identidade após uma desconexão? O servidor ainda aceita a chave pública?
Dois comandos respondem à primeira e à terceira:
ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]
Registe a proteção do ficheiro, a utilização permitida da chave e a remoção do lado do servidor como três linhas separadas. Um túnel, uma frase-passe e um agente guardam cada um uma parte diferente da relação, e só um deles diz respeito à rede.