# Possible to use git over custom ssh libraries?

4 messages from 2021-03-05 to 2021-03-05. Participants: Stef Bon, Bryan Turner, brian m. carlson.
Thread: https://gitlist.dev/t/55260

## Stef Bon, 2021-03-05 08:13

Subject: Possible to use git over custom ssh libraries?
Message-ID: <CANXojczh98ax2KwsaJg4CkusgrUWvhH0yG-u6oSW9nwwMLz_iA@mail.gmail.com>
URL: https://gitlist.dev/e/CANXojczh98ax2KwsaJg4CkusgrUWvhH0yG-u6oSW9nwwMLz_iA%40mail.gmail.com

```
I'm working on a set of network services using SSH, like SFTP, backup,
fsnotify, (text/video) chat, connection forwarding using my own SSH
implementation. See:

https://github.com/stefbon/OSNS

Now I want to also provide support for browsing remote git
repositories using my ssh libraries, which will provide the transport
layer.

Is it possible to use git in combination with my own libraries? Or do
I have to use libgit2 for that or something else?

Thanks in advance,

Stef Bon

```

## Bryan Turner, 2021-03-05 08:30

Subject: Re: Possible to use git over custom ssh libraries?
Message-ID: <CAGyf7-HuBHC64rL-NBRS_HDD3dbyedV-LKOeP+=k2ZVxpDOLbA@mail.gmail.com>
URL: https://gitlist.dev/e/CAGyf7-HuBHC64rL-NBRS_HDD3dbyedV-LKOeP%2B%3Dk2ZVxpDOLbA%40mail.gmail.com
In-Reply-To: <CANXojczh98ax2KwsaJg4CkusgrUWvhH0yG-u6oSW9nwwMLz_iA@mail.gmail.com>

```
On Fri, Mar 5, 2021 at 12:14 AM Stef Bon <stefbon@gmail.com> wrote:
>
> I'm working on a set of network services using SSH, like SFTP, backup,
> fsnotify, (text/video) chat, connection forwarding using my own SSH
> implementation. See:
>
> https://github.com/stefbon/OSNS
>
> Now I want to also provide support for browsing remote git
> repositories using my ssh libraries, which will provide the transport
> layer.

Git doesn't use any SSH libraries directly, as far as I'm aware. It
forks ssh and that does what it does. Git has an
ssh.variant/GIT_SSH_VARIANT[1] toggle can be used to tell it a bit
about how it should expect ssh to behave so it can assemble the right
command line.

That implies you'd need to use your libraries to build at least a
minimal ssh command you could configure Git to use. GIT_SSH[2] can be
used to tell Git where to find the ssh binary.

>
> Is it possible to use git in combination with my own libraries? Or do
> I have to use libgit2 for that or something else?
>
> Thanks in advance,
>
> Stef Bon

Hope this helps!
-b

[1] https://git-scm.com/docs/git-config#Documentation/git-config.txt-sshvariant
[2] https://git-scm.com/docs/git#Documentation/git.txt-codeGITSSHcode

```

## Stef Bon, 2021-03-05 14:22

Subject: Re: Possible to use git over custom ssh libraries?
Message-ID: <CANXojcymWsK4g7s5rx0_OPu_XSf4ZiKUbYgQ-h38cvF5WYQs=g@mail.gmail.com>
URL: https://gitlist.dev/e/CANXojcymWsK4g7s5rx0_OPu_XSf4ZiKUbYgQ-h38cvF5WYQs%3Dg%40mail.gmail.com
In-Reply-To: <CAGyf7-HuBHC64rL-NBRS_HDD3dbyedV-LKOeP+=k2ZVxpDOLbA@mail.gmail.com>

```
Hi Bryan,

thanks for your reaction. Git itself can thus deal with a different
ssh implementation, only I cannot use that for
my fuse fs. I need I library which "talks" git.

What is libgit2 in this context? Is it a library which uses the git
internals, or is git self written in libgit2?
And can I use that to use custom ssh libraries and build a fuse fs with it?

Stef

```

## brian m. carlson, 2021-03-05 21:53

Subject: Re: Possible to use git over custom ssh libraries?
Message-ID: <YEKoav/IOp4Mpe4H@camp.crustytoothpaste.net>
URL: https://gitlist.dev/e/YEKoav%2FIOp4Mpe4H%40camp.crustytoothpaste.net
In-Reply-To: <CANXojcymWsK4g7s5rx0_OPu_XSf4ZiKUbYgQ-h38cvF5WYQs=g@mail.gmail.com>

```
On 2021-03-05 at 14:22:42, Stef Bon wrote:
> Hi Bryan,
> 
> thanks for your reaction. Git itself can thus deal with a different
> ssh implementation, only I cannot use that for
> my fuse fs. I need I library which "talks" git.
> 
> What is libgit2 in this context? Is it a library which uses the git
> internals, or is git self written in libgit2?
> And can I use that to use custom ssh libraries and build a fuse fs with it?

libgit2 is an independent implementation of Git as a library.  Git and
libgit2 generally don't share code, although some code has been copied
from one to the other.  It supports SSH using libssh2, although you
could probably patch it to use a different library.

That's the only general purpose C-compatible implementation of Git as a
library that I'm aware of.
-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

```
