On Mar 12, 12:05 am, "Leaping Bytes, LLC" <
andrei.tchi...@gmail.com>
wrote:
> Unfortunately (for this particular case) AVPN is not "... using
> standard SSH executable.". AlmostVPN server is actually written in
> Java and is usinghttp://
www.ganymed.ethz.ch/ssh2/to "talk" ssh.
Bummer.
> As of now, there is no plans to make AVPN open source. Though it may
> change in the future.
I wasn't suggesting that you should open source it; I was simply
pointing out that the choice for it to be closed limits trust because
there is no audit capability.
> To the best of my understanding, SSH-AGENT is using the very same keys
> (identities) AVPN can be configured to use.
Yes.
> So I am not quite follow
> you comment about "sign on multiple times". Once you "tell" AVPN to
> use particular key with particular server you done (unless of cause
> you are using pass-phrases on your identity files -- which as far as I
> can remember from your original post think you actually do).
Yes, I do use passphrases on my identity files.
AVPN asks for the passphrase every time it tries to use the identity.
> May I ask you, how SSH-AGENT dealing with pass-phrase protected keys?
> Are you typing pass-phrase every time your start SSH-AGENT or does it
> store pass-phrase somewhere?
Any identity protected by a passphrase requires typing in that
passphrase when the identity is added to ssh-agent's cache. It is not
required any other time. From the man page for ssh-agent:
DESCRIPTION
ssh-agent is a program to hold private keys used for public key
authenti-
cation (RSA, DSA). The idea is that ssh-agent is started in the
begin-
ning of an X-session or a login session, and all other windows or
pro-
grams are started as clients to the ssh-agent program. Through
use of
environment variables the agent can be located and automatically
used for
authentication when logging in to other machines using ssh(1).
The agent initially does not have any private keys. Keys are
added using
ssh-add(1). When executed without arguments, ssh-add(1) adds the
files
~/.ssh/id_rsa, ~/.ssh/id_dsa and ~/.ssh/identity. If the
identity has a
passphrase, ssh-add(1) asks for the passphrase (using a small X11
appli-
cation if running under X11, or from the terminal if running
without X).
It then sends the identity to the agent. Several identities can
be
stored in the agent; the agent can automatically use any of these
identi-
ties. ssh-add -l displays the identities currently held by the
agent.
The idea is that the agent is run in the user's local PC, laptop,
or ter-
minal. Authentication data need not be stored on any other
machine, and
authentication passphrases never go over the network. However,
the con-
nection to the agent is forwarded over SSH remote logins, and the
user
can thus use the privileges given by the identities anywhere in
the net-
work in a secure way.
There are two main ways to get an agent set up: The first is that
the
agent starts a new subcommand into which some environment
variables are
exported, eg ssh-agent xterm &. The second is that the agent
prints the
needed shell commands (either sh(1) or csh(1) syntax can be
generated)
which can be evalled in the calling shell, eg eval `ssh-agent -s`
for
Bourne-type shells such as sh(1) or ksh(1) and eval `ssh-agent -
c` for
csh(1) and derivatives.
Later ssh(1) looks at these variables and uses them to establish
a con-
nection to the agent.
The agent will never send a private key over its request channel.
Instead, operations that require a private key will be performed
by the
agent, and the result will be returned to the requester. This
way, pri-
vate keys are not exposed to clients using the agent.
A unix-domain socket is created and the name of this socket is
stored in
the SSH_AUTH_SOCK environment variable. The socket is made
accessible
only to the current user. This method is easily abused by root
or
another instance of the same user.
The SSH_AGENT_PID environment variable holds the agent's process
ID.