#!/bin/bash # afssh -- wrapper around ssh-agent-filter and ssh # # Copyright (C) 2013 Timo Weingärtner # # This file is part of ssh-agent-filter. # # ssh-agent-filter is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # ssh-agent-filter is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with ssh-agent-filter. If not, see . set -e usage () { echo "usage: afssh [ssh-agent-filter options] -- [ssh options]" echo "$SAF" --help echo ssh --help exit } declare -a agent_filter_args if [ -x "${BASH_SOURCE%/*}/ssh-agent-filter" ]; then SAF=$(readlink -f "${BASH_SOURCE%/*}/ssh-agent-filter") else SAF=$(which ssh-agent-filter) fi while true; do if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then usage elif [ "$1" = "--" ]; then shift break else agent_filter_args+=("$1") shift fi done # safeguard to not kill the real ssh-agent unset SSH_AGENT_PID trap 'kill "$SSH_AGENT_PID"; rm -r "$TEMPDIR"' EXIT TEMPDIR=$(mktemp -d) eval $(cd "$TEMPDIR"; "$SAF" "${agent_filter_args[@]}" || echo exit $?) ssh-add -l ssh -A "$@"