There is now an easy way to automatically sign-off any commit that is not already signed-off by using hooks and the git-interpret-trailers command. In the upcoming version 2.15 of git the command allows to trivially check for an existing sign-off (no matter what’s its value/author is) and add yours if there is non yet. As of October 2017 the required code is not in any git release yet (but in its master branch)!
Save the following as .git/hooks/prepare-commit-msg or .git/hooks/commit-msg (see here for the differences) and make it executable.
#!/bin/sh
NAME=$(git config user.name)
EMAIL=$(git config user.email)
if [ -z "$NAME" ]; then
echo "empty git config user.name"
exit 1
fi
if [ -z "$EMAIL" ]; then
echo "empty git config user.email"
exit 1
fi
git interpret-trailers --if-exists doNothing --trailer \
"Signed-off-by: $NAME <$EMAIL>" \
--in-place "$1"