- Requisitos
- Opções de chaves SSH
- Rever as chaves SSH
- Gerar um novo par de chaves SSH
- ED25519 chaves SSH
- RSA com chaves SSH
- Comum passos para gerar um par de chaves SSH
- Chaves RSA e o OpenSSH a partir de versões 6.5 7.,8
- Adicionar uma chave SSH para o seu GitLab conta
- a Autenticação de Dois fatores (2FA)
- o Teste que está tudo configurado corretamente
- Trabalhar com os não-padrão do SSH par de chaves caminhos
- Por repositório chaves SSH
- Várias contas em um único GitLab exemplo
- Implantar teclas
- Aplicações
- Eclipse
- SSH no GitLab servidor
- Opções para o Microsoft Windows
- Resolução de problemas
o Git é um sistema distribuído de controle de versão do sistema, o que significa que você pode trabalhar no local.,Além disso, você também pode compartilhar ou “empurrar” suas alterações para outros servidores.O GitLab suporta uma comunicação segura entre o Git e os seus servidores usando as teclas SSH.
O protocolo SSH oferece esta segurança e permite-lhe autenticar no servidor remoto do gitlab sem fornecer o seu nome de utilizador ou senha de cada vez.
esta página pode ajudá-lo a configurar as teclas SSH seguras que poderá usar para ajudar a ligar as secções aos repositórios do GitLab.
- Se necessitar de informação sobre a criação de teclas SSH, comece pelas nossas opções para as teclas SSH.,
- Se tiver chaves SSH dedicadas à sua conta GitLab, poderá estar interessado em trabalhar com caminhos de pares de chaves SSH não predefinidos.
- Se você já tem um par de chaves SSH, você pode ir para como você pode adicionar uma chave SSH à sua conta GitLab.
requisitos
para suportar SSH, o GitLab requer a instalação do cliente OpenSSH, que é pré-instalado em GNU/Linux e macOS, bem como no Windows 10.
certifique-se que o seu sistema inclui a versão 6.5 do SSH ou mais recente, uma vez que exclui o esquema de assinatura MD5 agora inseguro., O comando a seguir retorna a versão ofSSH instalado no seu sistema:
ssh -V
Enquanto GitLab não suporta a instalação no Microsoft Windows,você pode configurar as chaves SSH para configurar o Windows como um cliente.
opções para chaves SSH
o GitLab suporta o uso de chaves RSA, DSA, ECDSA e ED25519.
- GitLab possui chaves DSA obsoletas no GitLab 11.0.como observado na criptografia prática com Go, as questões de segurança relacionadas com a DSA também se aplicam à ECDSA.,
portanto, a nossa documentação centra-se na utilização das chaves ED25519 e RSA.
Os administradores podem restringir as chaves que devem ser permitidas e os seus comprimentos mínimos.
revê as chaves SSH existentes
Se tiver chaves SSH existentes, poderá usá-las para ajudar a manter as ligações seguras com o Gitlabrepositórios., Por padrão, as chaves SSH nos sistemas Linux e macOS são armazenadas no diretório doméstico do usuário,na subdiretoria .ssh/
. A tabela seguinte inclui nomes de ficheiros predefinidos para cada algoritmo de chave SSH:
para recomendações, veja as opções para chaves SSH.
gerando um novo par de chaves SSH
Se quiser criar:
- uma chave ED25519, leia as chaves SSH ED25519.uma chave RSA, leia as chaves SSH RSA.
ED25519 SSH keys
The book Practical Cryptography With Gosuggests that ED25519 keys are more secure and performant than RSA keys.,
Como Opensh 6.5 introduziu chaves ED25519 SSH em 2014, elas devem estar disponíveis em qualquer sistema atual de operação.
Você pode criar e configurar um ED25519 chave com o seguinte comando:
ssh-keygen -t ed25519 -C "<comment>"
-C
bandeira, com uma citado comentário, tais como um endereço de e-mail, é uma forma opcional de rotular suas chaves SSH.
verá uma resposta semelhante a:
Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):
para orientação, siga para os passos comuns.,
chaves ssh RSA
Se usar chaves RSA para SSH, o Instituto Nacional de normas e Tecnologia dos EUA recomenda que use uma chave de pelo menos 2048 bits.By por omissão, o comando ssh-keygen
cria uma chave RSA de 1024 bits.,
Você pode criar e configurar uma chave RSA com o seguinte comando, substituindo, se desejado, para o mínimo recomendado o tamanho da chave de 2048
:
ssh-keygen -t rsa -b 2048 -C "[email protected]"
-C
bandeira, com uma citado comentário, tais como um endereço de e-mail, é uma forma opcional de rotular suas chaves SSH.
verá uma resposta semelhante a:
Generating public/private rsa key pair.Enter file in which to save the key (/home/user/.ssh/id_rsa):
para orientação, siga para os passos comuns.
Comum passos para gerar um par de chaves SSH
Se você estiver criando um ED25519 ou uma chave RSA, você começou com o ssh-keygen
comando.Neste ponto, você verá a seguinte mensagem na linha de comando (por ED25519 chaves):
Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Se você não tiver um par de chaves SSH e não estão a gerar uma implantar chave,aceitar a sugestão de arquivo e diretório. O seu cliente SSH utiliza o par de chaves SSH resultante sem configuração adicional.,
Alternativamente, você pode salvar o novo par de chaves SSH em um local diferente.Você pode atribuir o diretório e o nome do arquivo de sua escolha.Você também pode dedicar esse par de chaves SSH a um host específico.
Depois de atribuir um arquivo para salvar sua chave SSH, você pode definir upa frase-senha para sua chave SSH:
Enter passphrase (empty for no passphrase):Enter same passphrase again:
Se for bem-sucedido, você verá a confirmação de onde o ssh-keygen
commandsaved sua identificação e chave privada.,
Quando necessário, você pode atualizar a senha com o seguinte comando:
ssh-keygen -p -f /path/to/ssh_key
chaves RSA e o OpenSSH a partir de versões 6.5 7.8
Antes do OpenSSH 7.8, o padrão de chave pública de impressões digitais para chaves RSA foi baseado em MD5,e é, portanto, inseguro.
If your version of OpenSSH lies between version 6.5 to version 7.8(inclusive), run ssh-keygen
with the -o
option to save your private SSH keys in the more secureOpenSSH format.,
Se já tiver um par de chaves RSA SSH para usar com o GitLab, considere atualizá-lo para usar o formato de encriptação de senha mais seguro. Você pode fazer isso com o seguinte comando:
ssh-keygen -o -f ~/.ssh/id_rsa
como Alternativa, você pode gerar uma nova chave RSA com a criptografia mais segura formato com o seguinte comando:
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
ssh-keygen
página de homem, ED25519 já criptografa chaves para o mais secureOpenSSH formato.,adicionando uma chave de SSH à sua conta de GitLab
agora pode copiar a chave de SSH que criou para a sua conta de GitLab. Para isso, siga estes passos:
-
Copie a sua chave pública de SSH para um local que grava informações no formato de texto.,As seguintes opções salva informações para ED25519 chaves para o clipboardfor o famoso sistema operacional:
macOS:
pbcopy < ~/.ssh/id_ed25519.pub
Linux (requer o
xclip
pacote):xclip -sel clip < ~/.ssh/id_ed25519.pub
o Git Bash no Windows:
cat ~/.ssh/id_ed25519.pub | clip
Se você estiver usando uma chave RSA, substituto de acordo.
- navegue para
ou para a sua instância local de GitLab URL e assine.,
- Seleccione o seu avatar no canto superior direito e carregue em Configuração
- Carregue em teclas SSH.
- cola a chave pública que copiou para o campo de texto da chave.
- certifique-se de que a sua chave inclui um nome descritivo no campo de texto do título, tais como o computador portátil de trabalho ou a estação de trabalho de casa.
- incluir uma data de validade (opcional) para a chave na secção “expira em”. (Introduzido no GitLab 12.9.)
- carregue no botão Adicionar uma tecla.
As chaves SSH que tenham “expirado” usando este procedimento são válidas em fluxos de trabalho GitLab.,Dado que a data de expiração configurada pelo GitLab não está incluída na chave SSH propriamente dita,Poderá à mesma exportar as chaves SSH públicas, conforme necessário.
ssh-ed25519
(ou ssh-rsa
) e terminando com o seu endereço de e-mail.autenticação de dois factores (2FA)
pode configurar a autenticação de dois factores (2FA) para esquecer a SSH.,
o Teste que está tudo configurado corretamente
Para testar se a sua chave SSH foi adicionado corretamente, execute o followingcommand no seu terminal (substitua gitlab.com
com o domínio ofyour GitLab exemplo):
ssh -T [email protected]
A primeira vez que você se conectar a GitLab via SSH, você deve verificar theauthenticity do GitLab host que você está se conectando.Por exemplo, ao ligar-se a GitLab.com, answer yes
to add GitLab.,com to list of trusted hosts:
The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.
uma vez adicionado à lista de máquinas conhecidas, deverá validar a autenticidade da máquina do GitLab, mais uma vez. Execute o comando acima de novo, e você deve receber uma recepção ao GitLab, @username
! mensagem.,
Se a mensagem de boas-vindas não aparecer, você pode resolver o problema executando ssh
no modo detalhado, com o seguinte comando:
ssh -Tvvv [email protected]
Trabalhar com os não-padrão do SSH par de chaves caminhos
Se você usou um não-caminho de arquivo padrão para o seu GitLab par de chaves SSH,configurar o seu cliente SSH para apontar para o seu GitLab privado chave SSH.
Para fazer essas alterações, execute os seguintes comandos:
eval $(ssh-agent -s)ssh-add <path to private SSH key>
Agora, salvar essas configurações para o ~/.ssh/config
arquivo., Dois examplesfor chaves SSH dedicado a GitLab são mostrados aqui:
# GitLab.comHost gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab_com_rsa# Private GitLab instanceHost gitlab.company.com Preferredauthentications publickey IdentityFile ~/.ssh/example_com_rsa
chaves SSH Públicas precisam ser exclusivos para GitLab, como eles se ligam para sua conta.Sua chave SSH é o único identificador que você tem ao empurrar o código via SSH, é por isso que ele precisa mapear exclusivamente para um único usuário.,
Por repositório chaves SSH
Se você deseja usar chaves diferentes, dependendo do repositório que você está workingon, você pode emitir o seguinte comando enquanto dentro de seu repositório:
git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"
Isto não usar o SSH Agente e requer pelo menos Git 2.10.
contas múltiplas numa única instância do GitLab
o método por repositório também funciona para a utilização de contas múltiplas dentro de uma única instância do GitLab.
alternativamente, é possível atribuir nomes alternativos directamente a máquinas em~.ssh/config
., SSH and, by extension, Git fails to log in if there isan IdentityFile
set outside of a Host
block in .ssh/config
. Isto é devido à forma como o SSH reúne IdentityFile
Entradas e não é alterado por definição IdentitiesOnly
para yes
. IdentityFile
entradas devem apontar para a chave privada de um par de chaves SSH.
Host
aliases são definidos como user_1.gitlab.com
euser_2.gitlab.com
para a eficiência e a transparência., Configurações avançadas são mais difíceis de manter; usar este tipo de alias torna mais fácil para entender quando usar Outras ferramentas como git remote
sub-comandos. SSHwould entender qualquer seqüência de caracteres como Host
alias, portanto, Tanuki1
e Tanuki2
,apesar de dar muito pouco de contexto, de como e onde eles apontam, também funcionaria.,a Clonagem gitlab
repositório normalmente tem este aspecto:
git clone [email protected]:gitlab-org/gitlab.git
Para cloná-lo para user_1
substituir gitlab.com
com o SSH alias user_1.gitlab.com
:
git clone git@<user_1.gitlab.com>:gitlab-org/gitlab.git
Corrigir previamente clonado repositório usando o git remote
comando.
o exemplo abaixo assume que o repositório remoto é aliaseado como origin
.,
git remote set-url origin git@<user_1.gitlab.com>:gitlab-org/gitlab.git
implantar chaves
Leia a documentação sobre Chaves de implantar.
aplicações
Eclipse
Se estiver a usar EGit, poderá adicionar a sua chave de SSH ao Eclipse.
SSH no servidor gitlab
GitLab integra-se com o sistema instalado SSH daemon, designando um usuário(tipicamente chamado git
) através do qual todos os pedidos de acesso são tratados. O utilizador que liga o servidor GitLab ao SSH é identificado pela sua chave SSH em vez do seu nome de utilizador.,as operações do cliente SSH realizadas no servidor GitLab são executadas como este utilizador. Embora seja possível modificar a configuração do SSH para que este utilizador,por exemplo, forneça uma chave privada do SSH para autenticar estes pedidos, esta prática não é suportada e é fortemente desencorajada, uma vez que apresenta riscos significativos de segurança.
o processo de verificação do GitLab inclui uma verificação para esta condição, e direcciona-o para esta secção se o seu servidor estiver configurado desta forma, por exemplo:
remova a configuração personalizada assim que puder., Estas personalizações não são explicitamente suportadas e podem parar de funcionar a qualquer momento.
opções para o Microsoft Windows
Se estiver a correr o Windows 10, O Subsistema Windows Para Linux (WSL), e a sua última versão do WSL 2,suportam a instalação de diferentes distribuições Linux, que incluem os clientes Git e SSH.
para as versões atuais do Windows, você também pode instalar os clientes git e SSH withGit para Windows.,
As ferramentas alternativas incluem:
- Cygwin
- PuttyGen
solução de problemas
se no clone do Git lhe for pedida uma senha como [email protected]'s password:
algo está errado com a sua configuração da SSH.,
- Garantir que você gerar seu par de chaves SSH corretamente e adicionado o público SSHkey para o seu GitLab perfil
- Tente registar manualmente o privado chave SSH, usando o
ssh-agent
documentedearlier neste documento - Tente depurar a conexão executando
ssh -Tv [email protected]
(substituindoexample.com
com seu GitLab de domínio)