如何在 MacOSX Leopard 中激活 ssh-agent 确认?

如何在 MacOSX Leopard 中激活 ssh-agent 确认?

我有一台装有 MacOSX Leopard (10.6.2) 的 MacBook,我用它通过 SSH 连接到一些服务器(它们的操作系统是 Debian Lenny)。我使用 RSA 密钥登录服务器A,然后我从那里“跳转到”其他服务器C。我已在笔记本电脑上.ssh/config为服务器激活代理转发A为了能够连接到A然后从AC或者无需每次都输入密码。它工作正常。

但我读到代理转发有一个安全漏洞:如果黑客获得了root服务器的访问权限A,他将能够劫持代理转发机制并连接到服务器C无需任何密码。

显然,一个解决方案是使用ssh-add选项-c:它应该在每次服务器A想要使用我的 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,因为当我启动需要 RSA 密钥的 ssh 连接时,MacOSX 会自动为我执行此操作。因此,也许解决方案是将 MacOSX 配置为ssh-add使用该-c选项启动。不幸的是,我找不到该选项。

如果您有任何其他想法可以保护我免受代理转发劫持,我将不胜感激。

谢谢。

答案1

代理尝试运行辅助程序来提示。在 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

答案2

相关内容