Git için SSH Bağlantı Noktasını Belirtme


18

Bağlandığım sunucuların çoğu için standart olmayan bir ssh bağlantı noktası (1234) kullanıyorum. Yani benim ssh yapılandırma dosyasında var:

Port 1234

Ancak github.com 22 numaralı bağlantı noktasını kullanır. Github'a bağlanmaya çalıştığımda, açıkçası 1234 numaralı bağlantı noktasını kullanmaya çalışır.

İşte benim git config bir pasaj:

[remote "origin"]
        url = git@github.com:asdf/asdf.git

Yanıtlar:


27

~ / .Ssh / config dosyanızı doğru şekilde nasıl ayarlayacağınıza bir göz atın (man 5 ssh_config). Farklı ana bilgisayarlar için kolayca farklı ayarlar belirleyebilirsiniz. Sorununuzu çözmek için

Host github.com
Port 22
Host *
Port 1234

Ssh_config kılavuz sayfasına bir göz atın, ilk birkaç sayfada bilmeniz gereken her şeyi açıklar.


24

Bir bölüm oluşturmak ~/.ssh/configiyi bir çözümdür, ancak başka bir yöntem hakkında bilmek yararlı olabilir.

Ortak scp benzeri sözdiziminin user@host:pathbir bağlantı noktası için yeri yoktur, ancak Git ssh:bağlantı noktasını belirtmek için kullanılabilecek bir URL şemasını da destekler :

ssh://git@github.com:22/asdf/asdf.git

Bir ssh:URL bağlantı noktası belirtimini desteklese de, göreli yolları desteklemez (örneğin, eğik çizgiyle başlamadığı yerdeki scp benzeri sözdizimine doğrudan eşdeğer yoktur ).user@host:pathpath

GitHub göreli ve mutlak yolları aynı şekilde ele alır, bu yüzden onlar için çalışır, ancak tüm SSH tabanlı Git depoları için çalışmayabilir. Basit SSH tabanlı barındırma için, göreli veya mutlak yollardan geçiş yaparken /home/username/veya eklemeniz gerekebilir /Users/username/. Bazı barındırma sistemleri (ben böyle bir destek eksikliği bir hata olarak adlandırmak eğiliminde olsa da) mutlak yolları hiç işlemeyebilir.


Teşekkürler Chris. Benim ssh config ile mucking gerektirmez çünkü bu yolu en çok seviyorum. Teşekkürler!
James Ward

1
fyi, sunucu "çıplak" bir repo varsa o zaman bağlantı dizesi ssh://git@github.com:22/asdf/asdf(.git olmadan) daha fazla benzeyecektir
Xeoncross

3

(Cevabı sorduktan hemen sonra bulduğumda seviyorum.)

Genel ayar yerine her ana bilgisayar için bağlantı noktasını belirtmek üzere ssh yapılandırmamı değiştirdim:

Host asdf.com
    Port 1234

Host github.com
    User git
    Hostname github.com
    Port 22

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.