Bildiğim kadarıyla Git söz konusu olduğunda, bu ise gerçek bir URL. git remote -v
ve git remote get-url
sadece Git'in kendi konfigürasyonunda tanımlanan url.*.insteadOf
ayarları (yani ayarları) yapın. Gerisi doğrudan SSH istemcisine iletilir.
Bu nedenle, ~/.ssh/config
kendinizi ayrıştırmanız veya bir ssh
şekilde programa sormanız gerekir . Son OpenSSH sürümleri -G
bunun için seçeneğe sahip:
$ ssh -G foo | egrep "^(user|hostname|port) "
user git
hostname git.foo.com
port 9000
$ ssh -G foo | perl -e 'while (<>) { /^(\S+) (.*)$/ and $c{$1} = $2; }
for ($c{hostname}) { /:/ and s/.*/[$&]/; }
print "ssh://$c{user}\@$c{hostname}:$c{port}/\n";'
ssh://git@git.foo.com:9000/
( git+ssh://
Ve ssh+git://
öneklerin git'ten kaldırılması planlanmaktadır.)
Bunun için doğrudan bir seçeneğe sahip olmayan eski sürümler için; ProxyCommand seçeneğini (Mosh'un yaptığı budur) veya LocalCommand'ı kötüye kullanabilirsiniz, eğer sunucuya bağlanması gerçekten sakıncası yoksa :
ssh -o ProxyCommand=">&2; echo %h %p" foo
foo:
belki geçerli bir URL şeması olabilir. Nasıl düzenleri listeleyebilirsiniz nasıl / halen yüklenmiş protokollerigit
anlar (o eğer yüzden ssh olduğunu varsayabiliriz değil bu listede)?