Tentukan Port SSH untuk Git


18

Saya menggunakan port ssh non-standar (1234) untuk sebagian besar server yang saya hubungkan. Jadi dalam file konfigurasi ssh saya, saya punya:

Port 1234

Tetapi github.com menggunakan port 22. Ketika saya mencoba menghubungkan ke github, ia jelas mencoba menggunakan port 1234. Saat ini saya harus mengedit konfigurasi ssh saya untuk membuat semuanya berfungsi.

Berikut ini cuplikan dari konfigurasi git saya:

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

Jawaban:


27

Lihat saja cara mengatur file ~ / .ssh / config Anda dengan benar (man 5 ssh_config). Anda dapat menentukan pengaturan yang berbeda untuk host yang berbeda dengan mudah. Untuk mengatasi masalah Anda, Anda akan mengatur

Host github.com
Port 22
Host *
Port 1234

Lihat halaman manual ssh_config, ini menjelaskan semua yang perlu Anda ketahui pada beberapa halaman pertama.


24

Menyiapkan bagian dalam ~/.ssh/configadalah solusi yang bagus, tetapi mungkin berguna untuk mengetahui tentang metode lain.

Sintaks mirip- scp umum dari user@host:pathtidak memiliki tempat untuk port, tetapi Git juga mendukung ssh:skema URL yang dapat digunakan untuk menentukan port:

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

Sementara ssh:URL mendukung spesifikasi port, URL tidak mendukung jalur relatif (mis. Tidak ada ekuivalen langsung dengan sintaks seperti scp diuser@host:path mana pathtidak dimulai dengan garis miring).

GitHub memperlakukan jalur relatif dan absolut secara identik, sehingga ini berfungsi untuk mereka, tetapi mungkin tidak bekerja untuk semua repositori Git berbasis SSH. Untuk hosting berbasis SSH sederhana, Anda mungkin perlu memasukkan /home/username/atau /Users/username/ketika beralih dari jalur relatif ke absolut. Beberapa sistem hosting mungkin tidak menangani jalur absolut sama sekali (meskipun saya cenderung menyebut kurangnya dukungan bug).


Terimakasih Chris. Saya paling suka jalan ini karena tidak perlu mucking dengan konfigurasi ssh saya. Terima kasih!
James Ward

1
fyi, jika server memiliki repo "telanjang" maka string koneksi akan terlihat lebih seperti ssh://git@github.com:22/asdf/asdf(tanpa. git)
Xeoncross

3

(Senang ketika saya menemukan jawaban tepat setelah menanyakannya.)

Saya memodifikasi konfigurasi ssh saya untuk menentukan port untuk setiap host alih-alih menjadi pengaturan global:

Host asdf.com
    Port 1234

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.