### Please describe the problem. Syncing two standalones: amd64 and armel. Sync works from armel to amd64. Sync fails (missing git-upload-pack, git-receive-pack) from amd64 to armel. ### What steps will reproduce the problem? git-annex sync :) ### What version of git-annex are you using? On what operating system? git-annex version: 5.20131224-g6ca5271 on both ### Please provide any additional information below. #### on server "rose" (amd64) [[!format sh """ $ git-annex version git-annex version: 5.20131224-g6ca5271 build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus XMPP Feeds Quvi TDFA key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SHA256 SHA1 SHA512 SHA224 SHA384 WORM URL remote types: git gcrypt S3 bup directory rsync web webdav glacier hook local repository version: 3 default repository version: 3 supported repository versions: 3 5 upgrade supported from repository versions: 0 1 2 4 $ git-annex sync (merging synced/git-annex into git-annex...) commit ok pull synology ash: git-upload-pack: not found fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. failed push synology ash: git-receive-pack: not found fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Pushing to synology failed. (non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote\'s git config) failed git-annex: sync: 2 failed $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [branch "master"] [annex] uuid = c0e4106e-2631-11e2-9749-1bfa37a61069 version = 3 [remote "synology"] url = greg@server:/volume1/photo/ fetch = +refs/heads/*:refs/remotes/synology/* annex-ssh-options = "-i /home/greg/.ssh/annex.rose_rsa" annex-uuid = ca735977-973c-44bc-9257-915b2c875e39 greg@rose:~/.ssh$ cat authorized_keys command="/home/greg/.ssh/git-annex-shell" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT1yE96E/JQNPt0ziiNYJRvndCvLK4uG5h/SNYoAIBF1uH6L7VYAt3HWVqSyi3BcV70WDZ/yWgtNzbrcir46JpvEHMcvYaXLbANwoDGNjG/gsz7kP/8VUxZ6hG3P3ICuwnqVum5+rYXm6oj3xzWPfTRhhRoDZLOQdevSNpdGNaa/lSg8Vuq2suHwjQlQb8AIUuCZmS5cm6XwoUq/jJtN4LTuTPqMjzA6NkdhWM2Kigi9jPQBFborkYBPMphmZwBZiVnhsH1XpaOff+mP03D2gF/huC+b1vbWQstjuehUbY59rvJ4ijbOW8Uq2ep7dwLagmILtX5GbL+GS64pAn9sIP annex-DiskStation greg@rose:~/.ssh$ cat git-annex-shell #!/bin/sh set -e exec /home/greg/bin/git-annex.linux/runshell git-annex-shell -c "$SSH_ORIGINAL_COMMAND" greg@rose:~/bin/git-annex.linux$ ls bin gconvdir git-annex.MANIFEST git-core lib LICENSE README templates etc git git-annex-shell git-receive-pack lib64 linker runshell usr favicon.png git-annex git-annex-webapp git-upload-pack libdirs logo.svg shimmed """]] #### on "synology" (armel) [[!format sh """ /volume1/downloads/git-annex.linux $ ./runshell $ git-annex version git-annex version: 5.20131224-g6ca5271 build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi TDFA CryptoHash key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL remote types: git gcrypt S3 bup directory rsync web webdav glacier hook local repository version: 5 default repository version: 3 supported repository versions: 3 5 upgrade supported from repository versions: 0 1 2 4 $ which git-receive-pack /volume1/downloads/git-annex.linux/bin/git-receive-pack $ which git-upload-pack /volume1/downloads/git-annex.linux/bin/git-upload-pack $ git-annex sync commit (Recording state in git...) ok pull rose From server:/home/greg/Media/Pictures/Photos d761e6e..4454a51 git-annex -> rose/git-annex c4f0719..a4c73e4 master -> rose/master ok push rose Counting objects: 134, done. Compressing objects: 100% (58/58), done. Writing objects: 100% (58/58), 4.81 KiB | 0 bytes/s, done. Total 58 (delta 38), reused 0 (delta 0) warning: There are too many unreachable loose objects; run 'git prune' to remove them. To greg@server:/home/greg/Media/Pictures/Photos 4454a51..812c393 git-annex -> synced/git-annex ok $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = true logallrefupdates = true [branch "master"] [annex] uuid = ca735977-973c-44bc-9257-915b2c875e39 version = 5 direct = true [remote "rose"] url = greg@server:/home/greg/Media/Pictures/Photos fetch = +refs/heads/*:refs/remotes/rose/* annex-ssh-options = "-i /var/services/homes/greg/.ssh/annex_rsa" annex-trustlevel = trusted annex-uuid = c0e4106e-2631-11e2-9749-1bfa37a61069 $ cat /volume1/homes/greg/.ssh/authorized_keys ...partial... command="/var/services/homes/greg/.ssh/git-annex-shell" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYvOZK2rO+3cF1wxxxrXptZ/QbRaOy36p9RtFmE5MKxgBRJ7n/8nMfBGaj3KDXcdJG+dTUsmLY5VeULuM4omtfJrF2MFYZDw2N0Qgq1bnYZ+q4OlpHfI3h77dAxyvM1MXYJvewXsjh8XoQJYqE8Pj4C05YsAJrqQJqqQqVZceD4TPvbKgnQhQIE2mCVXfItucJv0TOOBmKguOQGUB4Jp00IvFsnxpCLDeLFIODjRpXQqcMX9cZ9/6OYLznTck/MdbA5KTev1gVwiGwtYFGqY/DJ7q6zqfE+UU2aKS/M0r0Qjvr2+Q4+CuzVYc+hPURC8phmdP+HjtFcVsEcpsl6p79 annex-rose /volume1/homes/greg/.ssh $ cd /volume1/homes/greg/.ssh/ /volume1/homes/greg/.ssh /volume1/homes/greg/.ssh $ ls annex_rsa authorized_keys id_rsa known_hosts annex_rsa.pub git-annex-shell id_rsa.pub /volume1/homes/greg/.ssh $ cd /var/services/homes/greg/.ssh/ /volume1/homes/greg/.ssh $ pwd /var/services/homes/greg/.ssh /volume1/homes/greg/.ssh $ cat git-annex-shell #!/bin/sh set -e exec /volume1/downloads/git-annex.linux/runshell git-annex-shell -c "$SSH_ORIGINAL_COMMAND" /volume1/downloads/git-annex.linux $ ls LICENSE git-annex-shell linker README git-annex-webapp logo.svg bin git-annex.MANIFEST runshell etc git-core shimmed favicon.png git-receive-pack templates gconvdir git-upload-pack usr git lib git-annex libdirs """]] ### After some debugging with Joey... 12:24 < joeyh> git does not use annex-ssh-options 12:24 < joeyh> the way the assistant sets this up is it makes up a new hostname, and in .ssh/config, makes that hostname use the real domain name, and the key 12:25 < joeyh> there's clearly a bug here.. the assistant only does that when there is no passwordless ssh key already set up. But in this wacky way of installing git and git-annex on a server, it needs to always do it 12:26 < joeyh> probably the assistant should probe if ssh server git-receive-pack works, and if not, always set up its special config 12:26 < joeyh> alternatively, the standalone tarball could have an actual installation step, rather than just being unpacked Based on that I added (on the amd64/rose machine): [[!format sh """ greg@rose:~/.ssh$ cat config Host synology HostName yep.org #obviously redacted IdentityFile /home/greg/.ssh/annex.rose_rsa $ git remote show -n synology * remote synology Fetch URL: greg@synology:/volume1/photo/ Push URL: greg@synology:/volume1/photo/ HEAD branch: (not queried) Local ref configured for 'git push' (status not queried): (matching) pushes to (matching) """]] Now, to do a simple test with git: [[!format sh """ $ git remote show synology git-annex-shell: git-shell failed fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. """]] > [[done]]; `git push` and `git pull` don't use annex-ssh-options, > and so that's not a good way to configure the dedicated key. > Instead, set it up like the assistant does, with a dummy hostname in the > url that is configured in .ssh/config to use the real domain and the > dedicated key. --[[Joey]]