0

keychainセキュリティを少し向上させるために、エージェントを別のユーザーとして実行したいと思います。sshこれにより、システムを乗っ取ったユーザーが実際の秘密鍵を取得するのを防ぎ、認証とscp接続に使用する機能を維持できます。

私は何を試しましたか?

agent秘密鍵を保存してssh-agentプロセスを実行するユーザーを作成しました。ソケットに適切なアクセス許可を設定するためのスクリプトファイルを作成しました。

#!/bin/sh
export EVAL=$(keychain --eval -q)
eval $EVAL
chmod 770 $(dirname $SSH_AUTH_SOCK) $(dirname $GPG_AGENT_INFO)
chmod 660 $SSH_AUTH_SOCK $(echo $GPG_AGENT_INFO | sed 's/:.*//')
echo $EVAL

そして、それを私の.bashrc中で呼んで、それを評価します。

しかし、今ssh、を介してサーバーに接続すると、

$ ssh server
Error reading response length from authentication socket.

ヒントはありますか?

4

1 に答える 1

2

keychainすでに実行中のssh-agentまたはのいずれかを使用しているようgpg-agentで、必要に応じて開始します。

ssh-agent checks if the user id of the running process matches the id of the user connecting through the unix domain socket (with the exception of root). If you run the agent in debug mode you'll see the corresponding error message. In this case the socket is immediately closed, so you'll get the error message you mention above - you're probably using ssh-agent on your system. That means what you try to do won't be possible using ssh-agent (unless you don't modify it).

It should work if you use gpg-agent with the --enable-ssh-support option as replacement for ssh-agent, but you should be aware that this setup doesn't really increase security. With the permissions you're trying to set, it would allow every user that has access rights to the socket the to authenticate as you using the added key once it has been unlocked, so it's actually less secure.

于 2012-12-04T01:18:16.080 に答える