xref: /dflybsd-src/crypto/openssh/ssh-add.1 (revision ba1276acd1c8c22d225b1bcf370a14c878644f44)
1*ba1276acSMatthew Dillon.\"	$OpenBSD: ssh-add.1,v 1.87 2024/06/17 08:30:29 djm Exp $
218de8d7fSPeter Avalos.\"
318de8d7fSPeter Avalos.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
418de8d7fSPeter Avalos.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
518de8d7fSPeter Avalos.\"                    All rights reserved
618de8d7fSPeter Avalos.\"
718de8d7fSPeter Avalos.\" As far as I am concerned, the code I have written for this software
818de8d7fSPeter Avalos.\" can be used freely for any purpose.  Any derived versions of this
918de8d7fSPeter Avalos.\" software must be clearly marked as such, and if the derived work is
1018de8d7fSPeter Avalos.\" incompatible with the protocol description in the RFC file, it must be
1118de8d7fSPeter Avalos.\" called by a name other than "ssh" or "Secure Shell".
1218de8d7fSPeter Avalos.\"
1318de8d7fSPeter Avalos.\"
1418de8d7fSPeter Avalos.\" Copyright (c) 1999,2000 Markus Friedl.  All rights reserved.
1518de8d7fSPeter Avalos.\" Copyright (c) 1999 Aaron Campbell.  All rights reserved.
1618de8d7fSPeter Avalos.\" Copyright (c) 1999 Theo de Raadt.  All rights reserved.
1718de8d7fSPeter Avalos.\"
1818de8d7fSPeter Avalos.\" Redistribution and use in source and binary forms, with or without
1918de8d7fSPeter Avalos.\" modification, are permitted provided that the following conditions
2018de8d7fSPeter Avalos.\" are met:
2118de8d7fSPeter Avalos.\" 1. Redistributions of source code must retain the above copyright
2218de8d7fSPeter Avalos.\"    notice, this list of conditions and the following disclaimer.
2318de8d7fSPeter Avalos.\" 2. Redistributions in binary form must reproduce the above copyright
2418de8d7fSPeter Avalos.\"    notice, this list of conditions and the following disclaimer in the
2518de8d7fSPeter Avalos.\"    documentation and/or other materials provided with the distribution.
2618de8d7fSPeter Avalos.\"
2718de8d7fSPeter Avalos.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2818de8d7fSPeter Avalos.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
2918de8d7fSPeter Avalos.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
3018de8d7fSPeter Avalos.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
3118de8d7fSPeter Avalos.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3218de8d7fSPeter Avalos.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3318de8d7fSPeter Avalos.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3418de8d7fSPeter Avalos.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3518de8d7fSPeter Avalos.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3618de8d7fSPeter Avalos.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3718de8d7fSPeter Avalos.\"
38*ba1276acSMatthew Dillon.Dd $Mdocdate: June 17 2024 $
3918de8d7fSPeter Avalos.Dt SSH-ADD 1
4018de8d7fSPeter Avalos.Os
4118de8d7fSPeter Avalos.Sh NAME
4218de8d7fSPeter Avalos.Nm ssh-add
430cbfa66cSDaniel Fojt.Nd adds private key identities to the OpenSSH authentication agent
4418de8d7fSPeter Avalos.Sh SYNOPSIS
4518de8d7fSPeter Avalos.Nm ssh-add
46*ba1276acSMatthew Dillon.Op Fl CcDdKkLlqvXx
47e9778795SPeter Avalos.Op Fl E Ar fingerprint_hash
48ee116499SAntonio Huete Jimenez.Op Fl H Ar hostkey_file
49ee116499SAntonio Huete Jimenez.Op Fl h Ar destination_constraint
500cbfa66cSDaniel Fojt.Op Fl S Ar provider
5118de8d7fSPeter Avalos.Op Fl t Ar life
5218de8d7fSPeter Avalos.Op Ar
5318de8d7fSPeter Avalos.Nm ssh-add
54856ea928SPeter Avalos.Fl s Ar pkcs11
55*ba1276acSMatthew Dillon.Op Fl Cv
56*ba1276acSMatthew Dillon.Op Ar certificate ...
5718de8d7fSPeter Avalos.Nm ssh-add
58856ea928SPeter Avalos.Fl e Ar pkcs11
59664f4763Szrj.Nm ssh-add
60664f4763Szrj.Fl T
61664f4763Szrj.Ar pubkey ...
6218de8d7fSPeter Avalos.Sh DESCRIPTION
6318de8d7fSPeter Avalos.Nm
649f304aafSPeter Avalosadds private key identities to the authentication agent,
6518de8d7fSPeter Avalos.Xr ssh-agent 1 .
6618de8d7fSPeter AvalosWhen run without arguments, it adds the files
6718de8d7fSPeter Avalos.Pa ~/.ssh/id_rsa ,
6836e94dc5SPeter Avalos.Pa ~/.ssh/id_ecdsa ,
690cbfa66cSDaniel Fojt.Pa ~/.ssh/id_ecdsa_sk ,
70*ba1276acSMatthew Dillon.Pa ~/.ssh/id_ed25519
7118de8d7fSPeter Avalosand
72*ba1276acSMatthew Dillon.Pa ~/.ssh/id_ed25519_sk .
73856ea928SPeter AvalosAfter loading a private key,
74856ea928SPeter Avalos.Nm
75856ea928SPeter Avaloswill try to load corresponding certificate information from the
76856ea928SPeter Avalosfilename obtained by appending
77856ea928SPeter Avalos.Pa -cert.pub
78856ea928SPeter Avalosto the name of the private key file.
7918de8d7fSPeter AvalosAlternative file names can be given on the command line.
80856ea928SPeter Avalos.Pp
8118de8d7fSPeter AvalosIf any file requires a passphrase,
8218de8d7fSPeter Avalos.Nm
8318de8d7fSPeter Avalosasks for the passphrase from the user.
8418de8d7fSPeter AvalosThe passphrase is read from the user's tty.
8518de8d7fSPeter Avalos.Nm
8618de8d7fSPeter Avalosretries the last passphrase if multiple identity files are given.
8718de8d7fSPeter Avalos.Pp
8818de8d7fSPeter AvalosThe authentication agent must be running and the
8918de8d7fSPeter Avalos.Ev SSH_AUTH_SOCK
9018de8d7fSPeter Avalosenvironment variable must contain the name of its socket for
9118de8d7fSPeter Avalos.Nm
9218de8d7fSPeter Avalosto work.
9318de8d7fSPeter Avalos.Pp
9418de8d7fSPeter AvalosThe options are as follows:
9518de8d7fSPeter Avalos.Bl -tag -width Ds
96*ba1276acSMatthew Dillon.It Fl C
97*ba1276acSMatthew DillonWhen loading keys into or deleting keys from the agent, process
98*ba1276acSMatthew Dilloncertificates only and skip plain keys.
9918de8d7fSPeter Avalos.It Fl c
10018de8d7fSPeter AvalosIndicates that added identities should be subject to confirmation before
10118de8d7fSPeter Avalosbeing used for authentication.
102e9778795SPeter AvalosConfirmation is performed by
103e9778795SPeter Avalos.Xr ssh-askpass 1 .
104e9778795SPeter AvalosSuccessful confirmation is signaled by a zero exit status from
105e9778795SPeter Avalos.Xr ssh-askpass 1 ,
106e9778795SPeter Avalosrather than text entered into the requester.
10718de8d7fSPeter Avalos.It Fl D
10818de8d7fSPeter AvalosDeletes all identities from the agent.
10918de8d7fSPeter Avalos.It Fl d
11018de8d7fSPeter AvalosInstead of adding identities, removes identities from the agent.
11118de8d7fSPeter AvalosIf
11218de8d7fSPeter Avalos.Nm
11336e94dc5SPeter Avaloshas been run without arguments, the keys for the default identities and
11436e94dc5SPeter Avalostheir corresponding certificates will be removed.
11518de8d7fSPeter AvalosOtherwise, the argument list will be interpreted as a list of paths to
11636e94dc5SPeter Avalospublic key files to specify keys and certificates to be removed from the agent.
11718de8d7fSPeter AvalosIf no public key is found at a given path,
11818de8d7fSPeter Avalos.Nm
11918de8d7fSPeter Avaloswill append
12018de8d7fSPeter Avalos.Pa .pub
12118de8d7fSPeter Avalosand retry.
12250a69bb5SSascha WildnerIf the argument list consists of
12350a69bb5SSascha Wildner.Dq -
12450a69bb5SSascha Wildnerthen
12550a69bb5SSascha Wildner.Nm
12650a69bb5SSascha Wildnerwill read public keys to be removed from standard input.
127e9778795SPeter Avalos.It Fl E Ar fingerprint_hash
128e9778795SPeter AvalosSpecifies the hash algorithm used when displaying key fingerprints.
129e9778795SPeter AvalosValid options are:
130e9778795SPeter Avalos.Dq md5
131e9778795SPeter Avalosand
132e9778795SPeter Avalos.Dq sha256 .
133e9778795SPeter AvalosThe default is
134e9778795SPeter Avalos.Dq sha256 .
135856ea928SPeter Avalos.It Fl e Ar pkcs11
136856ea928SPeter AvalosRemove keys provided by the PKCS#11 shared library
137856ea928SPeter Avalos.Ar pkcs11 .
138ee116499SAntonio Huete Jimenez.It Fl H Ar hostkey_file
139ee116499SAntonio Huete JimenezSpecifies a known hosts file to look up hostkeys when using
140ee116499SAntonio Huete Jimenezdestination-constrained keys via the
141ee116499SAntonio Huete Jimenez.Fl h
142ee116499SAntonio Huete Jimenezflag.
143ee116499SAntonio Huete JimenezThis option may be specified multiple times to allow multiple files to be
144ee116499SAntonio Huete Jimenezsearched.
145ee116499SAntonio Huete JimenezIf no files are specified,
146ee116499SAntonio Huete Jimenez.Nm
147ee116499SAntonio Huete Jimenezwill use the default
148ee116499SAntonio Huete Jimenez.Xr ssh_config 5
149ee116499SAntonio Huete Jimenezknown hosts files:
150ee116499SAntonio Huete Jimenez.Pa ~/.ssh/known_hosts ,
151ee116499SAntonio Huete Jimenez.Pa ~/.ssh/known_hosts2 ,
152ee116499SAntonio Huete Jimenez.Pa /etc/ssh/ssh_known_hosts ,
153ee116499SAntonio Huete Jimenezand
154ee116499SAntonio Huete Jimenez.Pa /etc/ssh/ssh_known_hosts2 .
155ee116499SAntonio Huete Jimenez.It Fl h Ar destination_constraint
156ee116499SAntonio Huete JimenezWhen adding keys, constrain them to be usable only through specific hosts or to
157ee116499SAntonio Huete Jimenezspecific destinations.
158ee116499SAntonio Huete Jimenez.Pp
159ee116499SAntonio Huete JimenezDestination constraints of the form
160ee116499SAntonio Huete Jimenez.Sq [user@]dest-hostname
161ee116499SAntonio Huete Jimenezpermit use of the key only from the origin host (the one running
162ee116499SAntonio Huete Jimenez.Xr ssh-agent 1 )
163ee116499SAntonio Huete Jimenezto the listed destination host, with optional user name.
164ee116499SAntonio Huete Jimenez.Pp
165ee116499SAntonio Huete JimenezConstraints of the form
166ee116499SAntonio Huete Jimenez.Sq src-hostname>[user@]dst-hostname
167ee116499SAntonio Huete Jimenezallow a key available on a forwarded
168ee116499SAntonio Huete Jimenez.Xr ssh-agent 1
169ee116499SAntonio Huete Jimenezto be used through a particular host (as specified by
170ee116499SAntonio Huete Jimenez.Sq src-hostname )
171ee116499SAntonio Huete Jimenezto authenticate to a further host,
172ee116499SAntonio Huete Jimenezspecified by
173ee116499SAntonio Huete Jimenez.Sq dst-hostname .
174ee116499SAntonio Huete Jimenez.Pp
175ee116499SAntonio Huete JimenezMultiple destination constraints may be added when loading keys.
176ee116499SAntonio Huete JimenezWhen attempting authentication with a key that has destination constraints,
177ee116499SAntonio Huete Jimenezthe whole connection path, including
178ee116499SAntonio Huete Jimenez.Xr ssh-agent 1
179ee116499SAntonio Huete Jimenezforwarding, is tested against those constraints and each
180ee116499SAntonio Huete Jimenezhop must be permitted for the attempt to succeed.
181ee116499SAntonio Huete JimenezFor example, if key is forwarded to a remote host,
182ee116499SAntonio Huete Jimenez.Sq host-b ,
183ee116499SAntonio Huete Jimenezand is attempting authentication to another host,
184ee116499SAntonio Huete Jimenez.Sq host-c ,
185ee116499SAntonio Huete Jimenezthen the operation will be successful only if
186ee116499SAntonio Huete Jimenez.Sq host-b
187ee116499SAntonio Huete Jimenezwas permitted from the origin host and the subsequent
188ee116499SAntonio Huete Jimenez.Sq host-b>host-c
189ee116499SAntonio Huete Jimenezhop is also permitted by destination constraints.
190ee116499SAntonio Huete Jimenez.Pp
191ee116499SAntonio Huete JimenezHosts are identified by their host keys, and are looked up from known hosts
192ee116499SAntonio Huete Jimenezfiles by
193ee116499SAntonio Huete Jimenez.Nm .
194ee116499SAntonio Huete JimenezWildcards patterns may be used for hostnames and certificate host
195ee116499SAntonio Huete Jimenezkeys are supported.
196ee116499SAntonio Huete JimenezBy default, keys added by
197ee116499SAntonio Huete Jimenez.Nm
198ee116499SAntonio Huete Jimenezare not destination constrained.
199ee116499SAntonio Huete Jimenez.Pp
200ee116499SAntonio Huete JimenezDestination constraints were added in OpenSSH release 8.9.
201ee116499SAntonio Huete JimenezSupport in both the remote SSH client and server is required when using
202ee116499SAntonio Huete Jimenezdestination-constrained keys over a forwarded
203ee116499SAntonio Huete Jimenez.Xr ssh-agent 1
204ee116499SAntonio Huete Jimenezchannel.
205ee116499SAntonio Huete Jimenez.Pp
206ee116499SAntonio Huete JimenezIt is also important to note that destination constraints can only be
207ee116499SAntonio Huete Jimenezenforced by
208ee116499SAntonio Huete Jimenez.Xr ssh-agent 1
209ee116499SAntonio Huete Jimenezwhen a key is used, or when it is forwarded by a
210ee116499SAntonio Huete Jimenez.Sy cooperating
211ee116499SAntonio Huete Jimenez.Xr ssh 1 .
212ee116499SAntonio Huete JimenezSpecifically, it does not prevent an attacker with access to a remote
213ee116499SAntonio Huete Jimenez.Ev SSH_AUTH_SOCK
214ee116499SAntonio Huete Jimenezfrom forwarding it again and using it on a different host (but only to
215ee116499SAntonio Huete Jimeneza permitted destination).
2160cbfa66cSDaniel Fojt.It Fl K
2170cbfa66cSDaniel FojtLoad resident keys from a FIDO authenticator.
21899e85e0dSPeter Avalos.It Fl k
21936e94dc5SPeter AvalosWhen loading keys into or deleting keys from the agent, process plain private
22036e94dc5SPeter Avaloskeys only and skip certificates.
22118de8d7fSPeter Avalos.It Fl L
22218de8d7fSPeter AvalosLists public key parameters of all identities currently represented
22318de8d7fSPeter Avalosby the agent.
22418de8d7fSPeter Avalos.It Fl l
22518de8d7fSPeter AvalosLists fingerprints of all identities currently represented by the agent.
226ce74bacaSMatthew Dillon.It Fl q
227ce74bacaSMatthew DillonBe quiet after a successful operation.
2280cbfa66cSDaniel Fojt.It Fl S Ar provider
2290cbfa66cSDaniel FojtSpecifies a path to a library that will be used when adding
2300cbfa66cSDaniel FojtFIDO authenticator-hosted keys, overriding the default of using the
2310cbfa66cSDaniel Fojtinternal USB HID support.
232856ea928SPeter Avalos.It Fl s Ar pkcs11
233856ea928SPeter AvalosAdd keys provided by the PKCS#11 shared library
234856ea928SPeter Avalos.Ar pkcs11 .
235*ba1276acSMatthew DillonCertificate files may optionally be listed as command-line arguments.
236*ba1276acSMatthew DillonIf these are present, then they will be loaded into the agent using any
237*ba1276acSMatthew Dilloncorresponding private keys loaded from the PKCS#11 token.
238664f4763Szrj.It Fl T Ar pubkey ...
239664f4763SzrjTests whether the private keys that correspond to the specified
240664f4763Szrj.Ar pubkey
241664f4763Szrjfiles are usable by performing sign and verify operations on each.
24218de8d7fSPeter Avalos.It Fl t Ar life
24318de8d7fSPeter AvalosSet a maximum lifetime when adding identities to an agent.
24418de8d7fSPeter AvalosThe lifetime may be specified in seconds or in a time format
24518de8d7fSPeter Avalosspecified in
24618de8d7fSPeter Avalos.Xr sshd_config 5 .
247664f4763Szrj.It Fl v
248664f4763SzrjVerbose mode.
249664f4763SzrjCauses
250664f4763Szrj.Nm
251664f4763Szrjto print debugging messages about its progress.
252664f4763SzrjThis is helpful in debugging problems.
253664f4763SzrjMultiple
254664f4763Szrj.Fl v
255664f4763Szrjoptions increase the verbosity.
256664f4763SzrjThe maximum is 3.
25718de8d7fSPeter Avalos.It Fl X
25818de8d7fSPeter AvalosUnlock the agent.
25918de8d7fSPeter Avalos.It Fl x
26018de8d7fSPeter AvalosLock the agent with a password.
26118de8d7fSPeter Avalos.El
26218de8d7fSPeter Avalos.Sh ENVIRONMENT
26318de8d7fSPeter Avalos.Bl -tag -width Ds
26450a69bb5SSascha Wildner.It Ev "DISPLAY", "SSH_ASKPASS" and "SSH_ASKPASS_REQUIRE"
26518de8d7fSPeter AvalosIf
26618de8d7fSPeter Avalos.Nm
26718de8d7fSPeter Avalosneeds a passphrase, it will read the passphrase from the current
26818de8d7fSPeter Avalosterminal if it was run from a terminal.
26918de8d7fSPeter AvalosIf
27018de8d7fSPeter Avalos.Nm
27118de8d7fSPeter Avalosdoes not have a terminal associated with it but
27218de8d7fSPeter Avalos.Ev DISPLAY
27318de8d7fSPeter Avalosand
27418de8d7fSPeter Avalos.Ev SSH_ASKPASS
27518de8d7fSPeter Avalosare set, it will execute the program specified by
27618de8d7fSPeter Avalos.Ev SSH_ASKPASS
277e9778795SPeter Avalos(by default
278e9778795SPeter Avalos.Dq ssh-askpass )
27918de8d7fSPeter Avalosand open an X11 window to read the passphrase.
28018de8d7fSPeter AvalosThis is particularly useful when calling
28118de8d7fSPeter Avalos.Nm
28218de8d7fSPeter Avalosfrom a
28318de8d7fSPeter Avalos.Pa .xsession
28418de8d7fSPeter Avalosor related script.
28550a69bb5SSascha Wildner.Pp
28650a69bb5SSascha Wildner.Ev SSH_ASKPASS_REQUIRE
28750a69bb5SSascha Wildnerallows further control over the use of an askpass program.
28850a69bb5SSascha WildnerIf this variable is set to
28950a69bb5SSascha Wildner.Dq never
29050a69bb5SSascha Wildnerthen
29150a69bb5SSascha Wildner.Nm
29250a69bb5SSascha Wildnerwill never attempt to use one.
29350a69bb5SSascha WildnerIf it is set to
29450a69bb5SSascha Wildner.Dq prefer ,
29550a69bb5SSascha Wildnerthen
29650a69bb5SSascha Wildner.Nm
29750a69bb5SSascha Wildnerwill prefer to use the askpass program instead of the TTY when requesting
29850a69bb5SSascha Wildnerpasswords.
29950a69bb5SSascha WildnerFinally, if the variable is set to
30050a69bb5SSascha Wildner.Dq force ,
30150a69bb5SSascha Wildnerthen the askpass program will be used for all passphrase input regardless
30250a69bb5SSascha Wildnerof whether
30350a69bb5SSascha Wildner.Ev DISPLAY
30450a69bb5SSascha Wildneris set.
30518de8d7fSPeter Avalos.It Ev SSH_AUTH_SOCK
306856ea928SPeter AvalosIdentifies the path of a
307856ea928SPeter Avalos.Ux Ns -domain
308856ea928SPeter Avalossocket used to communicate with the agent.
3090cbfa66cSDaniel Fojt.It Ev SSH_SK_PROVIDER
3100cbfa66cSDaniel FojtSpecifies a path to a library that will be used when loading any
3110cbfa66cSDaniel FojtFIDO authenticator-hosted keys, overriding the default of using
3120cbfa66cSDaniel Fojtthe built-in USB HID support.
31318de8d7fSPeter Avalos.El
31418de8d7fSPeter Avalos.Sh FILES
3150cbfa66cSDaniel Fojt.Bl -tag -width Ds -compact
3169f304aafSPeter Avalos.It Pa ~/.ssh/id_ecdsa
3170cbfa66cSDaniel Fojt.It Pa ~/.ssh/id_ecdsa_sk
31836e94dc5SPeter Avalos.It Pa ~/.ssh/id_ed25519
3190cbfa66cSDaniel Fojt.It Pa ~/.ssh/id_ed25519_sk
32018de8d7fSPeter Avalos.It Pa ~/.ssh/id_rsa
321*ba1276acSMatthew DillonContains the ECDSA, authenticator-hosted ECDSA, Ed25519,
3220cbfa66cSDaniel Fojtauthenticator-hosted Ed25519 or RSA authentication identity of the user.
32318de8d7fSPeter Avalos.El
32418de8d7fSPeter Avalos.Pp
32518de8d7fSPeter AvalosIdentity files should not be readable by anyone but the user.
32618de8d7fSPeter AvalosNote that
32718de8d7fSPeter Avalos.Nm
32818de8d7fSPeter Avalosignores identity files if they are accessible by others.
3299f304aafSPeter Avalos.Sh EXIT STATUS
33018de8d7fSPeter AvalosExit status is 0 on success, 1 if the specified command fails,
33118de8d7fSPeter Avalosand 2 if
33218de8d7fSPeter Avalos.Nm
33318de8d7fSPeter Avalosis unable to contact the authentication agent.
33418de8d7fSPeter Avalos.Sh SEE ALSO
33518de8d7fSPeter Avalos.Xr ssh 1 ,
33618de8d7fSPeter Avalos.Xr ssh-agent 1 ,
337e9778795SPeter Avalos.Xr ssh-askpass 1 ,
33818de8d7fSPeter Avalos.Xr ssh-keygen 1 ,
33918de8d7fSPeter Avalos.Xr sshd 8
34018de8d7fSPeter Avalos.Sh AUTHORS
34118de8d7fSPeter AvalosOpenSSH is a derivative of the original and free
34218de8d7fSPeter Avalosssh 1.2.12 release by Tatu Ylonen.
34318de8d7fSPeter AvalosAaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
34418de8d7fSPeter AvalosTheo de Raadt and Dug Song
34518de8d7fSPeter Avalosremoved many bugs, re-added newer features and
34618de8d7fSPeter Avaloscreated OpenSSH.
34718de8d7fSPeter AvalosMarkus Friedl contributed the support for SSH
34818de8d7fSPeter Avalosprotocol versions 1.5 and 2.0.
349