Uma introdução detalhada ao método de clonagem de https e SSH no git e a resolução de conflitos SSH de várias contas do github e o problema de que a porta SSH é bloqueada pelo firewall Resolva o problema de clonar projetos privados através de HTTPS

alvo de aprendizagem:

Domine o conhecimento do Git


Conteúdo de Aprendizagem:

1. A diferença entre HTTPS e SSH 2. Etapas para configuração completa de chaves SSH e chaves públicas 3. Resolução de conflitos SSH para várias contas do github 4. Portas SSH bloqueadas por firewalls

tempo de estudo:

2022.2.10

Saída de aprendizagem:

1. A diferença entre HTTPS e SSH

Existem duas maneiras de clonar um projeto no git: HTTPS e SSH. As diferenças entre elas são as seguintes:

HTTPS: não importa quem você seja, você pode apenas clonar o URL, mas você precisa verificar o nome de usuário e a senha ao enviar;
SSH: você deve ser o proprietário ou administrador do projeto clone e precisa adicionar uma chave SSH antes o clone.
Quando o SSH é enviado, você não precisa digitar o nome de usuário. Se uma senha for definida ao configurar a chave SSH, você precisará digitar a senha. Caso contrário, não será necessário digitar a senha diretamente.

Etapas para usar a chave SSH no git: Verifique se a chave SSH existe no computador: $ cd ~/.ssh$ ls Se houver um arquivo id_rsa.pub ou
id_dsa.pub, significa que o arquivo existe e pula a etapa de criando uma chave SSH. Crie uma chave SSH para colocar o SSH público no repositório remoto

2. Configure completamente as etapas da chave SSH e da chave pública

Por favor, veja meu outro artigo nesta coluna

3. Resolução de conflitos SSH para várias contas do github

github usa SSH para se conectar com o cliente. Se for um único usuário (primeiro), depois de gerar o par de chaves, salve a chave pública no github, e
o cliente SSH envia a chave privada local (padrão ~/.ssh/id_rsa) ao servidor para verificação toda vez que ele se conectar .
No caso de um único usuário, a chave pública armazenada no servidor conectado e a chave privada enviada são naturalmente pareadas.

Mas se for multiusuário (primeiro, segundo), quando nos conectamos à conta do segundo, o
segundo salva sua própria chave pública, mas o cliente SSH ainda envia a chave privada padrão, que é a chave privada do primeiro, então essa verificação é naturalmente impossível .passar.
No entanto, para obter a troca de chave SSH em várias contas, você pode fazer algumas configurações no lado do cliente.

Primeiro, cd para ~/.ssh e use ssh-keygen -t -rsa -C '[email protected]' para gerar uma nova chave SSH: id_rsa_second, e adicione a nova chave pública SSH ao github após a geração.

ssh-keygen -t -rsa -C '[email protected]'

Por padrão, o SSH lerá apenas id_rsa, portanto, para que o SSH reconheça a nova chave privada, ele precisa ser adicionado ao agente SSH

ssh-add/.ssh/id_rsa_second

Se o comando relatar um erro: Could not open a connection to your authentication agentNão é possível conectar ao agente ssh, execute ssh-agent basho comando e, em seguida, execute o ssh-addcomando.

Após concluir os passos acima, crie um arquivo de configuração no diretório ~/.ssh, que é usado para configurar o servidor correspondente à chave privada. O conteúdo é o seguinte:

 Default github user(first@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa

#second user([email protected])
Host github-second
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa_second

Após a conclusão da configuração, ao se conectar a um repositório do github com uma conta não padrão, o endereço do repositório remoto precisa ser modificado de acordo. Por exemplo, ao adicionar um teste de repositório na segunda conta, você precisa adicioná-lo como esta:

git remote add test git@github-second:second/test.git 
#并非原来的[email protected]:second/test.git

Dessa forma, cada conexão usará id_rsa_second para se conectar ao servidor. Até agora, você está feito!

Nota: o github obtém a conta do github e exibe as informações do autor de acordo com o user.email do arquivo de configuração, portanto, para usuários com várias contas, lembre-se de alterar user.email para o e-mail correspondente ([email protected]).

4. Resolva o problema de que a porta SSH está bloqueada pelo firewall

Configure o SSH para usar a porta HTTPS 403
Na LAN, a porta SSH 22 pode estar bloqueada pelo firewall, você pode configurar o SSH para usar a porta HTTPS 403.

Teste se a porta HTTPS está disponível

$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

Edite o arquivo de configuração SSH ~/.ssh/config da seguinte forma:

Host github.com
Hostname ssh.github.com
Port 443

Testar se a configuração foi bem-sucedida

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

5. Clone projetos privados via HTTPS ou SSH

Atualmente, os projetos privados do github estão disponíveis gratuitamente por um período de tempo, mas quando você usa o método de clone comum para baixar para o local, você descobrirá que o clone falha e uma mensagem de erro é exibida.

remote: Repository not found.
fatal: repository ‘https://github.com/github-username/github-template-name.git’ not found

Normalmente, o formato de link do clone é geralmente

https://github.com/github-username/github-template-name.git

Então, quando você quiser clonar seu próprio projeto privado localmente, para a segurança do projeto privado, você precisa adicionar uma conta e senha para verificação

git clone https://github-username:github-password@github.com/github-username/github-template-name.git

Ao clonar, adicione github-username:github-password após https://, e então o link @project pode clonar o projeto normalmente. Esta é uma maneira relativamente simples de clonar seu próprio projeto privado.

Alguns softwares gráficos Git podem solicitar que você insira uma conta e senha, o que é mais conveniente. Por exemplo
insira a descrição da imagem aqui
, digite o link HTTPS do armazém privado, clique em clonar, aparecerá automaticamente a caixa de entrada, permitindo que você insira a senha da conta, que é mais fácil de usar

No entanto, SourceTree, o software
insira a descrição da imagem aqui
, não pode clonar inserindo links HTTPS. Como este é um repositório privado
, a solução é fazer login na conta remota no SourceTree
insira a descrição da imagem aqui
para puxar o repositório privado

Como alternativa, o uso de um link SSH também pode atender aos requisitos. Como o SSH corresponde à chave privada e à chave pública, não há necessidade de inserir uma conta e senha

Acho que você gosta

Origin blog.csdn.net/m0_48781656/article/details/122854653
Recomendado
Clasificación