Vou passar por todos os passos necessários para fornecer acesso ssh temporário:
1. Criar o par de chaves CA do usuário SSH
ssh-keygen -f <key-pair-name> -b 4096
Isso criará uma chave privada, que será usada para assinar as chaves públicas do usuário e uma chave pública que será colocada e configurada como chave CA Confiável no lado do servidor.
A chave privada deve ser armazenada em um local seguro e protegida com uma senha strong.
2. Configurando uma chave CA de Confiança SSH em um servidor
a. Copie a chave pública da CA no diretório /etc/ssh/
e garanta que ela tenha a propriedade adequada (raiz do usuário, raiz do grupo) e permissões (0600, sem ACLs), assim:
-rw------- 1 root root 404 Jan 29 08:05 users_ca.pub
b. Adicione uma entrada em /etc/ssh/sshd_config
para ativar o uso da CA
# Allow access from signed keys TrustedUserCAKeys /etc/ssh/users_ca.pub
c. Valide a configuração do SSH e se nenhum erro for exibido, reinicie o daemon
sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
sudo service ssh reload
3. Assinando a chave do usuário
a. Obter a chave privada da CA, que será usada para assinar a chave pública do usuário
b. Obtenha a chave pública do usuário
c. Assine a chave pública:
ssh-keygen -s users_ca -I awesomeuser -n serveruser -V +1d userkey.pub
onde os ssh-keygen
switches usados acima são:
-
-s users_ca
- chave privada da CA -
-I awesomeuser
- nome do usuário -
-n serveruser
- nome de usuário para o qual a autenticação é permitida -
- V +1d
- especifica um intervalo de validade ao assinar um certificado. Um intervalo de validade pode consistir em uma única vez, indicando que o certificado é válido começando agora e expirando naquele momento, ou pode consistir em duas vezes separadas por dois pontos para indicar um intervalo de tempo explícito. A hora de início pode ser especificada como uma data emYYYYMMDD
format, uma vez emYYYYMMDDHHMMSS
format ou uma hora relativa (até a hora atual) consistindo de um sinal de menos seguido por uma hora relativa no formato descrito em TIME FORMATS seção desshd_config
. A hora final pode ser especificada comoYYYYMMDD
date,YYYYMMDDHHMMSS
time ou uma hora relativa começando com um caractere plus. Por exemplo:"+52w1d"
(válido de agora para 52 semanas e um dia a partir de agora),"-4w:+4w"
(válido de quatro semanas atrás para quatro semanas a partir de agora),"20100101123000:20110101123000"
(válido a partir de 12:30, 1º de janeiro De 2010 a 12:30, 1º de janeiro de 2011),"-1d:20110101"
(válido de ontem a meia-noite de 1º de janeiro de 2011). -
userkey.pub
- a chave pública do usuário
d. Quando uma chave pública é assinada, uma nova chave pública com o nome <old public key>-cert.pub
(no exemplo acima do nome com userkey-cert.pub
) é gerada.
Signed user key userkey-cert.pub: id "awesomeuser" serial 0 for serveruser valid from 2018-01-29T07:59:00 to 2018-01-30T08:00:53
e. A chave pública recém-criada deve ser retornada ao usuário. Depois que ele receber, ele poderá acessar o servidor configurado com a CA SSH.
Isso deve fazer isso por você.