A resposta a seguir explica os arquivos necessários para se preparar para a autenticação ssh usando pares de chaves pública-privada ("Public Key Infrastructure" ou "PKI") e como esses arquivos são usados durante uma sessão ssh real. Alguns detalhes aqui usam nomes e diretórios que se aplicam ao linux, mas os princípios se aplicam a todas as plataformas, que usam programas e arquivos paralelos a eles. As principais características de interesse são:
-
Máquina do usuário
-
Par de chaves de usuário: Público e privado, que o usuário do lado do cliente deve criar usando ssh-keygen, criando arquivos com nomes como:
- ~ / .ssh / id_rsa (particular) e
- ~ / .ssh / id_rsa.pub (público)
- Na preparação, deve ser fornecido ao arquivo authorized_keys do host
- ~ / .ssh / known_hosts
- que recebe a chave pública do servidor, se o usuário a aceitar no primeiro login.
-
Par de chaves de usuário: Público e privado, que o usuário do lado do cliente deve criar usando ssh-keygen, criando arquivos com nomes como:
-
Máquina host (servidor)
-
Par de chaves do host: público e privado
- são criados automaticamente em algum momento, como a instalação do openssh no servidor. Nomes típicos:
- / etc / ssh / ssh_host_rsa_key (privado)
- / etc / ssh / ssh_host_rsa_key.pub (público)
- o host oferece a chave pública para o usuário do lado do cliente na primeira vez que o usuário do lado do cliente tenta se conectar ao ssh. O cliente armazenará a chave do host em known_hosts
- ~ / .ssh / authorized_keys
- Na preparação, deve receber a chave pública de cada usuário que fará o login.
-
Par de chaves do host: público e privado
- Sequência de eventos em uma sessão SSH real (ou rsync), mostrando como os arquivos estão envolvidos.
(Note que existem dois algoritmos de assinatura comuns diferentes, RSA e DSA, então onde esta discussão usa 'rsa', a string 'dsa' pode aparecer no lugar.)
conexãoSSHeuso
Espero que esses diagramas sejam úteis.