diff --git a/wrapper/ssh-deploy-key-wrapper.sh b/wrapper/ssh-deploy-key-wrapper.sh new file mode 100644 index 0000000..06da0db --- /dev/null +++ b/wrapper/ssh-deploy-key-wrapper.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# The last argument is the command to be executed on the remote end, which is something +# like "git-upload-pack 'webfactory/ssh-agent.git'". We need the repo path only, so we +# loop over this last argument to get the last part of if. +for last in ${!#}; do :; done + +# Don't use "exec" to run "ssh" below; then the trap won't work. +key_file=$(mktemp -u) +trap "rm -f $key_file" EXIT + +eval last=$last + +# Try to pick the right key +ssh-add -L | grep --word-regexp --max-count=1 $last > $key_file + +ssh -i $key_file "$@" \ No newline at end of file