My objective is to use a Drobo5N as a Git server and repository site. Code development will occur on other computers. I’ve installed Git (version 2.6.3) and Dropbear (v2015.67) on a Drobo5N. Otherwise, my installation is generally the same as described here. However, this installation does not yet fully support Git operations. Perhaps more experienced users can provide a sanity check on my approach.
Here are some details. The Drobo5N ~/.ssh directory contains an appropriately configured authorized_keys file. It also contains an environment file with an appropriate expression of required paths:
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/mnt/DroboFS/Shares/DroboApps/git/bin
On the client side, the [remote] section of the .git/config file includes appropriately matching entries:
uploadpack = /mnt/DroboFS/Shares/DroboApps/git/bin/git-upload-pack
receivepack = /mnt/DroboFS/Shares/DroboApps/git/bin/git-receive-pack
However, the Dropbear installation did not create an /etc/ssh directory nor an sshd_config file. Hence, I am unable to update the default binding of the shell variable PermitUserEnvironment from “no” to “yes” on the Drobo5N. Perhaps Dropbear does not install all the capability needed for an SSH server daemon.
In this configuration, I can interactively login via SSH to the Drobo5N with appropriate binding of PATH and other variables (as in [1]). Nevertheless, an interactive SSH session fails to bind the appropriate path (as in [2]). Note that Drobo5N is identified in the client’s ~/.ssh/known_hosts file.
[1] user@VM02F7 MINGW32 ~/Projects/my_git_project (master)
$ ssh Drobo5N
Enter passphrase for key ‘/c/Users/user/.ssh/id_rsa’:
Drobo5N:~ $ echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin:/mnt/DroboFS/Shares/DroboApps/git/bin
Drobo5N:~ $ exit
Connection to drobo5n closed.
[2] user@VM02F7 MINGW32 ~/Projects/my_git_project (master)
$ ssh user@Drobo5N echo $PATH
Enter passphrase for key ‘/c/Users/user/.ssh/id_rsa’:
/usr/bin:/bin
With the difference between [1] and [2] in mind, I ran [2] in debug mode to verify that it did indeed invoke an interactive session. With that confirmed, I began to wonder about the server-side shell and its functionality. The default Drobo5N shell is sh, which is encapsulated in the BusyBox “multi-call binary.” Since Git runs inside a bash shell, maybe Busybox sh is not sufficient to support all the capability needed for SSH services.
Are there any experienced experts who can comment on the interoperability of Git, Dropbear (especially its encapsulated SSH services), and the Drobo5N Busybox (especially its sh program facet)?