No que diz respeito ao Git, esse é o URL real. git remote -v
e git remote get-url
realizam apenas substituições definidas na própria configuração do Git (ou seja, as configurações url.*.insteadOf
). O restante é passado diretamente para o cliente SSH.
~/.ssh/config
ou perguntar ao programa ssh
de alguma forma. Versões recentes do OpenSSH têm a opção -G
para isso:
$ 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://[email protected]:9000/
(Os prefixos git+ssh://
e ssh+git://
estão planejados para serem removidos do git.)
Para versões mais antigas, que não têm uma opção direta para isso; talvez você possa abusar da opção ProxyCommand (que é o que Mosh faz), ou LocalCommand se você não se importar com isso conectando ao servidor:
ssh -o ProxyCommand=">&2; echo %h %p" foo