Mój dostawca VPS zaleca pozostawienie portu SSH pod niestandardowym numerem portu, który przypisują mu domyślnie (nie 22). Chodzi o to, że chociaż wiem, że mogę podać numer portu podczas tworzenia zdalnej konfiguracji, wygląda na to, że nie mogę zrobić tego samego, wykonując klon git. Używam gitolite, więc polecenia klonowania wyglądają następująco:
git clone [email protected]:gitolite-admin
Czy istnieje sposób na ukrycie tego przy użyciu niestandardowego numeru portu ssh?
Powinienem również wspomnieć, że uruchamiam cygwin w systemie Windows. Widziałem wiele miejsc mówiących o dodaniu niestandardowego portu do ~/.ssh/config
pliku, takiego jak
Host mydomain.com
Port 12345
jednak w cygwin ten plik wydaje się nie istnieć.
git
version-control
ssh
cygwin
ryanzec
źródło
źródło
.ssh/config
(nieconf
) w katalogu domowym użytkownika. Nie jest wymagany do podstawowej obsługi, dlatego domyślnie nie istnieje. Będziesz musiał go stworzyć. Spróbujvim ~/.ssh/config
(lub użyj preferowanego, zainstalowanego edytora tekstu), aby go otworzyć / utworzyć./Users/USERX/.ssh/config
musisz ustawićHOME
środowisko lokalne na/Users/USERX
.Odpowiedzi:
Zwróć uwagę, że numer portu powinien znajdować się bez nawiasów kwadratowych: []
źródło
git clone [email protected]:[port]/gitolite-admin
git clone ssh://[email protected]:port/home/user/gitolite-admin
1 Jaki jest problem z plikiem konfiguracyjnym ssh?
Jeśli plik konfiguracyjny nie istnieje, możesz go utworzyć. Poza
port
tym plik konfiguracyjny może zawierać inną opcję konfiguracji ssh:user
IdentityFile
i tak dalej, plik konfiguracyjny wygląda takJeśli używasz Linuksa, uważaj, że plik konfiguracyjny musi mieć ścisłe uprawnienia: do odczytu / zapisu dla użytkownika i nie jest dostępny dla innych
2 a co ze sposobem ssh url?
To fajne, jedyne, co powinniśmy wiedzieć, to że istnieją dwie składnie dla ssh url w git
ssh://[user@]host.xz[:port]/path/to/repo.git/
[user@]host.xz:path/to/repo.git/
Domyślnie Gitlab i Github pokażą scp jak składnię url i nie możemy podać niestandardowego portu ssh. Aby zmienić port ssh, musimy użyć standardowej składni
źródło
Jeśli chcesz mieć względną ścieżkę z katalogu domowego (w każdym systemie UNIX), użyj tej dziwnej składni:
ssh://[user@]host.xz[:port]/~[user]/path/to/repo
Na przykład, jeśli repozytorium znajduje
/home/jack/projects/jillweb
się na serwerzejill.com
i logujesz się tak, jak wjack
przypadkusshd
nasłuchiwania na porcie 4242:ssh://[email protected]:4242/~/projects/jillweb
A kiedy logujesz się jako
jill
(zakładając, że masz uprawnienia do plików):ssh://[email protected]:4242/~jack/projects/jillweb
źródło
(Aktualizacja: kilka lat później Google i Qwant „linie lotnicze” nadal wysyłają mnie tutaj podczas wyszukiwania „git non-default ssh port”) Prawdopodobnie lepszym sposobem w nowszych wersjach git jest użycie GIT_SSH_COMMAND ENV.VAR, takiego jak:
GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path
Ma to tę dodatkową zaletę, że zezwala na dowolną inną odpowiednią opcję ssh (port, klucz priv., IPv6, urządzenie PKCS # 11, ...).
źródło