Especifique a porta SSH para o Git

16

Eu uso uma porta ssh não padrão (1234) para a maioria dos servidores aos quais me conecto. Então no meu arquivo de configuração ssh eu tenho:

Port 1234

Mas o github.com usa a porta 22. Quando tento conectar ao github, obviamente, tento usar a porta 1234. Agora preciso editar minha configuração ssh para fazer as coisas funcionarem.

Aqui está um trecho da minha configuração do git:

[remote "origin"]
        url = [email protected]:asdf/asdf.git
    
por James Ward 03.01.2011 / 18:31

4 respostas

23

Dê uma olhada em como configurar seu arquivo ~ / .ssh / config corretamente (man 5 ssh_config). Você pode especificar configurações diferentes para diferentes hosts facilmente. Para resolver o seu problema, você deve definir

Host github.com
Port 22
Host *
Port 1234

Dê uma olhada na página de manual do ssh_config, ela explica tudo o que você precisa saber nas primeiras páginas.

    
por 03.01.2011 / 18:41
16

Configurar uma seção em ~/.ssh/config é uma boa solução, mas pode ser útil saber sobre outro método.

A sintaxe comum do scp de user@host:path não tem lugar para uma porta, mas o Git também suporta um esquema ssh: URL que pode ser usado para especificar a porta:

ssh://[email protected]:22/asdf/asdf.git

Embora uma URL ssh: suporte a especificação de porta, ela não suporta caminhos relativos (por exemplo, não há equivalente direto à sintaxe semelhante a scp de user@host:path , em que path não inicia com uma barra).

O GitHub trata caminhos relativos e absolutos de forma idêntica, por isso funciona para eles, mas pode não funcionar para todos os repositórios Git baseados em SSH. Para hospedagem simples baseada em SSH, talvez seja necessário inserir /home/username/ ou /Users/username/ ao alternar de caminhos relativos para absolutos. Alguns sistemas de hospedagem podem não lidar com caminhos absolutos (embora eu tenha a tendência de chamar esse bug de falta de suporte).

    
por 04.01.2011 / 04:06
3

(adoro quando encontro a resposta logo depois de perguntar.)

Eu modifiquei minha configuração ssh para especificar a porta para cada host em vez de ser uma configuração global:

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22
    
por 03.01.2011 / 18:41
2

Encontrou este link e, embora tenha sido útil, a entrada do meu blog pode ajudar a esclarecer:

link

Basicamente eu acho muito melhor apenas editar seu arquivo .git / config e fazer as mudanças.

    
por 27.08.2015 / 21:50

Tags