Как активировать подтверждение ssh-agent в MacOSX Leopard?

У меня есть MacBook с MacOSX Leopard (10.6.2), и я использую его для подключения к некоторым серверам (их ОС - Debian Lenny) с использованием SSH. Я использую ключи RSA для входа на сервер A, и оттуда я "подпрыгиваю" на другие серверы B, C и D. Я активировал переадресацию агентов на моем ноутбуке .ssh/config для сервера A, чтобы иметь возможность подключиться к A и затем "отскочить" от A до B, C или D без необходимости каждый раз вводить мой пароль. Работает нормально.

Но я читал, что переадресация агента имеет один недостаток безопасности: если хакер получает root Получив доступ к серверу A, он сможет перехватить механизм переадресации агента и подключиться к серверам B, C и D без какого-либо пароля.

По-видимому, одним из решений является использование ssh-add"s -c вариант: он должен запрашивать у меня подтверждение каждый раз, когда сервер А хочет использовать мой ключ RSA. Но по какой-то причине это не удается:

miniquark@mylaptop:~$ ssh-add -c
Enter passphrase for /Users/miniquark/.ssh/id_rsa: 
Identity added: /Users/miniquark/.ssh/id_rsa (/Users/miniquark/.ssh/id_rsa)
The user has to confirm each use of the key
miniquark@mylaptop:~$ ssh serverA
Agent admitted failure to sign using the key.
miniquark@serverA's password: 

Обычно мне не нужно запускать ssh-add вручную, поскольку MacOSX делает это для меня автоматически, когда я запускаю ssh-соединение, для которого требуется ключ RSA. Так что, возможно, решением будет настроить MacOSX для запуска ssh-add с -c вариант. К сожалению, я просто не могу найти этот вариант.

Если у вас есть какая-либо другая идея, которая защитит меня от перехвата агентов, я был бы очень благодарен.

Спасибо.

2 ответа

Агент пытается запустить вспомогательную программу для запроса. В OS X его нет по умолчанию, поэтому вам нужно будет указать его (в /usr/libexec/ssh-askpass). В настоящее время я использую один похожий на это:

#! /bin/sh  

#  
# An SSH_ASKPASS command for MacOS X  
#  
# Based on script by Joseph Mocker, Sun Microsystems


TITLE=${MACOS_ASKPASS_TITLE:-"SSH Agent"}  

DIALOG="display dialog \"$@\" buttons {\"Deny\", \"Allow\"} default button 2"
DIALOG="$DIALOG with title \"$TITLE\" with icon caution"  

result=`osascript -e 'tell application "Terminal"' -e "$DIALOG" -e 'end tell'`  

if [ "$result" = "button returned:Allow" ]; then
    exit 0 
else  
    exit 1  
fi

Прочитайте эту страницу http://jcs.org/notaweblog/2011/04/19/making_openssh_on_mac_os_x_more_secure/ для решения Джошуа Стейна

Другие вопросы по тегам