Surf tries to get the sha1 out of the repository url using
git ls-remote {$options['repositoryUrl']} refs/heads/$branch | awk '{print $1 }
and this seems not to work here for me. When executing the command on the CLI locally I get the sha1, so I did this to fix this issue for me. Maybe this work when using a key maybe not ;-)