Como posso ativar a confirmação do agente ssh no MacOSX Leopard?

7

Eu tenho um MacBook com MacOSX Leopard (10.6.2) e eu o uso para conectar-me a alguns servidores (seu O.S. é o Debian Lenny) usando SSH. Eu uso chaves RSA para fazer o login no servidor A , e de lá eu "salto" para outros servidores B , C e D Ativei o encaminhamento de agente no .ssh/config do meu laptop para o servidor A para poder conectar-me a A e depois "saltar" de A para B , C ou D sem precisar digitar minha senha todas as vezes. Funciona bem.

Mas eu li que o encaminhamento do agente tem uma falha de segurança: se um hacker obtiver root access no servidor A , ele poderá seqüestrar o mecanismo de encaminhamento do agente e se conectar aos servidores B , C e D sem nenhuma senha.

Aparentemente, uma solução é usar a opção ssh-add -c : ela deve me pedir confirmação toda vez que o servidor A quiser usar minha chave RSA. Mas, por algum motivo, falha:

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: 

Normalmente, não preciso iniciar ssh-add manualmente, pois o MacOSX faz isso automaticamente quando eu inicio uma conexão ssh que requer uma chave RSA. Então talvez a solução seja configurar o MacOSX para lançar ssh-add com a opção -c . Infelizmente, não consigo encontrar essa opção.

Se você tiver alguma outra idéia que me proteja do sequestro de agentes, eu ficaria muito grato.

Obrigado.

    
por MiniQuark 15.02.2010 / 11:34

2 respostas

4

O agente tenta executar um programa auxiliar para solicitar. No OS X, este não está no lugar por padrão, então você precisará fornecer um (em / usr / libexec / ssh-askpass). Atualmente estou usando um semelhante a este:

#! /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
    
por 22.02.2011 / 06:01
0

Leia esta página link para a solução de Joshua Stein

    
por 18.05.2011 / 06:55