OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Peter Smej
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 11-Nov-2002 18:11:42
Branch: HEAD Handle: 2002111117114200
Added files:
openpkg-src/openssh3.5 fsl.openssh openssh.spec rc.openssh ssh-askpass
ssh-keyman ssh-keyman.1 ssh-keyman.pod ssh_config
sshd_config
Log:
Commit openssh Version 3.5 p1
Summary:
Revision Changes Path
1.1 +16 -0 openpkg-src/openssh3.5/fsl.openssh
1.1 +278 -0 openpkg-src/openssh3.5/openssh.spec
1.1 +60 -0 openpkg-src/openssh3.5/rc.openssh
1.1 +25 -0 openpkg-src/openssh3.5/ssh-askpass
1.1 +290 -0 openpkg-src/openssh3.5/ssh-keyman
1.1 +258 -0 openpkg-src/openssh3.5/ssh-keyman.1
1.1 +169 -0 openpkg-src/openssh3.5/ssh-keyman.pod
1.1 +43 -0 openpkg-src/openssh3.5/ssh_config
1.1 +41 -0 openpkg-src/openssh3.5/sshd_config
____________________________________________________________________________
Index: openpkg-src/openssh3.5/fsl.openssh
============================================================
$ cvs update -p -r1.1 fsl.openssh
##
## fsl.openssh -- OSSP fsl configuration for openssh
##
ident (ssh(d|-.+)?|scp|sftp(-server)?)/.+ q{
prefix(
prefix="%b %d %H:%M:%S %N <%L> $1[%P]: "
)
-> {
debug: file(
path="@l_prefix@/var/openssh/sshd.log",
append=1, perm=0644
)
}
}
Index: openpkg-src/openssh3.5/openssh.spec
============================================================
$ cvs update -p -r1.1 openssh.spec
##
## openssh.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
## Copyright (c) 2000-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package versions
%define V_base 3.5
%define V_portable p1
%define V_chroot 3.5
# package options
%ifndef with_pam
%define with_pam no
%endif
%ifndef with_pcre
%define with_pcre no
%endif
%ifndef with_skey
%define with_skey no
%endif
%ifndef with_x11
%define with_x11 %{l_test -p x11}
%endif
%ifndef with_chroot
%define with_chroot no
%endif
# package information
Name: openssh
Summary: Secure Shell (SSH)
URL: http://www.openssh.com/
Vendor: The OpenBSD Project
Packager: The OpenPKG Project
Distribution: OpenPKG [CORE]
Group: Security
License: BSD
Version: %{V_base}%{V_portable}
Release: 200211111
# list of sources
Source0:
ftp://ftp.openssh.com/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
Source1: rc.openssh
Source2: fsl.openssh
Source3: sshd_config
Source4: ssh_config
Source5: ssh-askpass
Source6: ssh-keyman
Source7: ssh-keyman.1
Source8: ssh-keyman.pod
Source9: http://chrootssh.sourceforge.net/patches/osshChroot-%{V_chroot}.diff
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
#BuildPreReq: OpenPKG, openpkg >= 20021002, fsl, perl, openssl, zlib
BuildPreReq: OpenPKG, openpkg >= 20021002, perl, openssl, zlib
#PreReq: OpenPKG, openpkg >= 20021002, fsl
PreReq: OpenPKG, openpkg >= 20021002
%if "%{with_pam}" == "yes"
BuildPreReq: PAM
PreReq: PAM
%endif
%if "%{with_pcre}" == "yes"
BuildPreReq: pcre
%endif
%if "%{with_skey}" == "yes"
BuildPreReq: skey
%endif
%if "%{with_x11}" == "yes"
BuildPreReq: X11
PreReq: X11
%endif
AutoReq: no
AutoReqProv: no
%description
Secure Shell (SSH) is a facility for logging into a remote machine
and for remotely executing commands on a remote machine. It is
intended to replace rlogin(1) and rsh(1), and provide secure
encrypted communications between two untrusted hosts over an
insecure network. X11 connections and arbitrary TCP/IP ports can
also be forwarded over the secure channel. OpenSSH is OpenBSD's
rework of the last free version of SSH, bringing it up to date in
terms of security and features, as well as removing all patented
algorithms to separate libraries (OpenSSL).
Options:
--define 'with_pam %{with_pam}'
--define 'with_pcre %{with_pcre}'
--define 'with_skey %{with_skey}'
--define 'with_x11 %{with_x11}'
--define 'with_chroot %{with_chroot}'
%prep
%setup0 -q -c
%if "%{with_chroot}" == "yes"
cd openssh-%{version}
%{l_patch} -p1 <%{SOURCE osshChroot-%{V_chroot}.diff}
%endif
%build
# build OpenSSH
( cd openssh-%{version}
inc="-I%{l_prefix}/include"
lib="-L%{l_prefix}/lib"
%if "%{with_pam}" == "yes"
inc="$inc -I`%{l_prefix}/etc/rc --query pam_incdir`"
lib="$lib -L`%{l_prefix}/etc/rc --query pam_libdir`"
%endif
CC="%{l_cc}" \
CFLAGS="`%{l_prefix}/bin/fsl-config --all --cflags` $inc" \
CFLAGS="$inc" \
LDFLAGS="`%{l_prefix}/bin/fsl-config --all --ldflags` $lib" \
LIBS="`%{l_prefix}/bin/fsl-config --all --libs`" \
./configure \
--prefix=%{l_prefix} \
--sbindir=%{l_prefix}/bin \
--mandir=%{l_prefix}/man \
--infodir=%{l_prefix}/info \
--sysconfdir=%{l_prefix}/etc/openssh \
--libexecdir=%{l_prefix}/libexec/openssh \
--localstatedir=%{l_prefix}/var/openssh \
--with-pid-dir=%{l_prefix}/var/openssh \
--with-ssl-dir=%{l_prefix} \
%if "%{with_pcre}" == "yes"
--with-pcre=%{l_prefix} \
%endif
%if "%{with_skey}" == "yes"
--with-skey=%{l_prefix} \
%endif
%if "%{with_pam}" == "yes"
--with-pam \
%else
--without-pam \
%endif
%if "%{with_x11}" == "yes"
--with-xauth="`%{l_prefix}/etc/rc --query x11_bindir`/xauth" \
%endif
--with-md5-passwords \
--with-zlib=%{l_prefix} \
--with-ipv4-default \
--without-smartcard \
--without-kerberos4 \
--disable-suid-ssh \
--without-rsh \
--with-mantype=man \
--with-default-path=%{l_prefix}/bin:/bin:/usr/bin:/usr/local/bin \
--with-privsep-user=%{l_nusr} \
--with-privsep-path=%{l_prefix}/var/openssh/empty
# build package
%{l_make} %{l_mflags -O}
)
%install
rm -rf $RPM_BUILD_ROOT
# perform standard installation procedure of OpenSSH
( cd openssh-%{version}
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
)
# strip down installation tree
rm -rf $RPM_BUILD_ROOT%{l_prefix}/share
rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/slogin
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/slogin.1
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2> /dev/null || true
strip $RPM_BUILD_ROOT%{l_prefix}/libexec/openssh/* 2> /dev/null || true
# install ssh-askpass wrapper
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openssh/
%{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE ssh-askpass} $RPM_BUILD_ROOT%{l_prefix}/libexec/openssh/
# make sure the state directory exists
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/openssh \
$RPM_BUILD_ROOT%{l_prefix}/var/openssh/empty
# install addons
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin/ \
$RPM_BUILD_ROOT%{l_prefix}/man/man1/
%{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE ssh-keyman} $RPM_BUILD_ROOT%{l_prefix}/bin/
%{l_shtool} install -c -m 644 -e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE ssh-keyman.1} $RPM_BUILD_ROOT%{l_prefix}/man/man1/
# install run-command script
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
%{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_musr@;%{l_musr};g' -e 's;@l_mgrp@;%{l_mgrp};g' \
%{SOURCE rc.openssh} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install fsl configuration file
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
%{l_shtool} install -c -m 644 -e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE fsl.openssh} $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
# install reasonable ssh server and client configuration files
%{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/openssh/
%{l_shtool} install -c -m 644 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_x11forwarding@;%{with_x11};' \
%{SOURCE sshd_config} $RPM_BUILD_ROOT%{l_prefix}/etc/openssh/
%{l_shtool} install -c -m 644 -e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE ssh_config} $RPM_BUILD_ROOT%{l_prefix}/etc/openssh/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/openssh/*' \
'%attr(4711,root,%{l_mgrp}) %{l_prefix}/libexec/openssh/ssh-keysign' \
'%dir %attr(700,root,root) %{l_prefix}/var/openssh/empty' \
'%config %{l_prefix}/etc/fsl/fsl.openssh' \
'%not %dir %{l_prefix}/etc/fsl'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
# generate server RSA1 (SSHv1) key
if [ ! -f "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_key" -o \
! -s "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_key" ] ; then
$RPM_INSTALL_PREFIX/bin/ssh-keygen -t rsa1 -b 2048 \
-f $RPM_INSTALL_PREFIX/etc/openssh/ssh_host_key \
-N '' -C `hostname` 1>&2
fi
# generate server RSA (SSHv2) key
if [ ! -f "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_rsa_key" -o \
! -s "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_rsa_key" ] ; then
$RPM_INSTALL_PREFIX/bin/ssh-keygen -t rsa -b 2048 \
-f $RPM_INSTALL_PREFIX/etc/openssh/ssh_host_rsa_key \
-N '' -C `hostname` 1>&2
fi
# generate server DSA (SSHv2) key
if [ ! -f "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_dsa_key" -o \
! -s "$RPM_INSTALL_PREFIX/etc/openssh/ssh_host_dsa_key" ] ; then
$RPM_INSTALL_PREFIX/bin/ssh-keygen -t dsa -b 2048 \
-f $RPM_INSTALL_PREFIX/etc/openssh/ssh_host_dsa_key \
-N '' -C `hostname` 1>&2
fi
# add PAM configuration entry
%if "%{with_pam}" == "yes"
$RPM_INSTALL_PREFIX/sbin/pamtool --add --smart --name=openssh
%endif
%preun
# remove PAM configuration entry
%if "%{with_pam}" == "yes"
$RPM_INSTALL_PREFIX/sbin/pamtool --remove --smart --name=openssh
%endif
Index: openpkg-src/openssh3.5/rc.openssh
============================================================
$ cvs update -p -r1.1 rc.openssh
#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
##
## rc.openssh -- Run-Commands for OpenSSH Daemon
##
%config
openssh_enable="yes"
openssh_log_prolog="true"
openssh_log_epilog="true"
openssh_log_numfiles="10"
openssh_log_minsize="1M"
openssh_log_complevel="9"
%common
openssh_signal () {
if [ -f "@l_prefix@/var/openssh/sshd.pid" ]; then
kill -$1 `cat @l_prefix@/var/openssh/sshd.pid`
fi
}
%start -p 200 -u root
opServiceEnabled openssh || exit 0
@l_prefix@/bin/sshd
%stop -p 200 -u root
opServiceEnabled openssh || exit 0
openssh_signal TERM
%restart -u root
opServiceEnabled openssh || exit 0
openssh_signal TERM
sleep 2
@l_prefix@/bin/sshd
%daily -u root
opServiceEnabled openssh || exit 0
opTmpDirGen openssh
opTmpDirFile openssh hint hintfile
prolog="true"
if [ ".$openssh_log_prolog" != . ]; then
prolog="$prolog; $openssh_log_prolog"
fi
epilog="echo 'epilog' >$hintfile"
if [ ".$openssh_log_epilog" != . ]; then
epilog="$epilog; $openssh_log_epilog"
fi
shtool rotate -f \
-n${openssh_log_numfiles} -s${openssh_log_minsize} \
-d -z${openssh_log_complevel} \
-o@l_musr@ -g@l_mgrp@ -m644 \
-P "$prolog" \
-E "$epilog" \
@l_prefix@/var/openssh/sshd.log
if [ ".`cat $hintfile`" = ".epilog" ]; then
openssh_signal TERM
sleep 2
@l_prefix@/bin/sshd
fi
opTmpDirDel openssh
Index: openpkg-src/openssh3.5/ssh-askpass
============================================================
$ cvs update -p -r1.1 ssh-askpass
#!/bin/sh
##
## ssh-askpass -- Internal OpenSSH wrapper for ssh-askpass
##
ssh_askpass=""
if [ ".$SSH_ASKPASS" != . ]; then
ssh_askpass="$SSH_ASKPASS"
else
for p in @l_prefix@ `echo $PATH | sed -e 's/:/ /g'`; do
if [ -f $p/ssh-askpass ]; then
ssh_askpass="$p/ssh-askpass"
break
elif [ -f $p/x11-ssh-askpass ]; then
ssh_askpass="$p/x11-ssh-askpass"
break
fi
done
fi
if [ ".$ssh_askpass" = . ]; then
echo "ssh:ERROR: neither \"[x11-]ssh-askpass\" installed nor \$SSH_ASKPASS
provided" 1>&2
exit 1
fi
exec $ssh_askpass "$@"
Index: openpkg-src/openssh3.5/ssh-keyman
============================================================
$ cvs update -p -r1.1 ssh-keyman
#!/bin/sh
##
## ssh-keyman -- authentication key agent management
## Copyright (c) 2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
## ssh-keyman: program implementation (language: Bourne-Shell)
##
# program information
prog_name="ssh-keyman"
prog_vers="1.0.1"
prog_date="31-May-2002"
# OpenSSH programs
ssh_agent="@l_prefix@/bin/ssh-agent"
ssh_add="@l_prefix@/bin/ssh-add"
# parse command line options
opt_q=no; alias_quiet=q
opt_c=no; alias_cluster=c
opt_e=no; alias_env=e
opt_s=no; alias_start=s
opt_k=no; alias_kill=k
opt_a=no; alias_add=a
opt_d=no; alias_delete=d
opt_l=no; alias_list=l
opt_h=no; alias_help=h
opt_v=no; alias_version=v
if [ $# -eq 0 ]; then
opt_h=yes
fi
while [ $# -gt 0 ]; do
if [ ".$1" = ".--" ]; then
shift
break
fi
case $1 in
--quiet|--cluster|--env|--start|--kill|--add|--delete|--list|--help|--version )
name=`echo x$1 | sed -e 's;^x--;;'`
eval "name=\$alias_${name}"
eval "opt_${name}=yes"
;;
-[qceskadlhv] )
name=`echo x$1 | sed -e 's;^x-;;'`
eval "opt_${name}=yes"
;;
-* )
echo "$prog_name:ERROR: unknown option \"$opt\"" 1>&2
exit 1
;;
* )
break
;;
esac
shift
done
# stand-alone operation: display help information
if [ ".$opt_h" = .yes ]; then
echo "Usage: $prog_name [-h] [-v] [-q] [-c] [-e] [-s] [-k] [-a] [-d] [-l]
[keyfile ...]"
exit 0
fi
# stand-alone operation: display version information
if [ ".$opt_v" = .yes ]; then
echo "$prog_name $prog_vers ($prog_date)"
exit 0
fi
# determine agent information filename
hostname=`hostname`
agentfile="$HOME/.ssh/agent-$hostname"
if [ ".$opt_c" = .no ]; then
if [ ! -f $agentfile ]; then
agentfile="$HOME/.ssh/agent"
fi
fi
# export agent configuration
export SSH_AUTH_SOCK
export SSH_AGENT_PID
# perform agent information sanity check
check_agent_info () {
context="$1"
invalid1=""
invalid2=""
if [ ".$SSH_AUTH_SOCK" != . ]; then
# make sure the agent socket is (still) working
if [ ! -r $SSH_AUTH_SOCK ]; then
invalid1="agent socket $SSH_AUTH_SOCK no longer exists"
else
ssh-add -l >/dev/null 2>&1
if [ $? -eq 2 ]; then
invalid1="agent socket $SSH_AUTH_SOCK no longer valid"
fi
fi
fi
if [ ".$SSH_AGENT_PID" != . ]; then
# make sure the agent process is (still) running
kill -0 $SSH_AGENT_PID >/dev/null 2>&1
if [ $? -ne 0 ]; then
invalid2="agent process $SSH_AGENT_PID no longer exists"
fi
fi
if [ ".$invalid1" != . -o ".$invalid2" != . ]; then
if [ ".$opt_e" = .no ]; then
echo "$prog_name:WARNING: invalid agent setup found in $context." 1>&2
if [ ".$invalid1" != . ]; then
echo "$prog_name:WARNING: reason: $invalid1." 1>&2
fi
if [ ".$invalid2" != . ]; then
echo "$prog_name:WARNING: reason: $invalid2." 1>&2
fi
if [ ".$context" = ".your shell environment" ]; then
echo "$prog_name:HINT: run \"eval \`$prog_name -q -s -e\`\" to fix."
1>&2
fi
fi
unset SSH_AUTH_SOCK
unset SSH_AGENT_PID
fi
}
check_agent_info "your shell environment"
if [ -f $agentfile ]; then
. $agentfile
check_agent_info "in saved agent state"
if [ ".$SSH_AUTH_SOCK" = . -o ".$SSH_AGENT_PID" = . ]; then
rm -f $agentfile
fi
fi
# if (now guarrantied to be correct) agent state is in
# environment, but it is (no longer?) saved, save it now to fix situation.
if [ ! -f $agentfile ]; then
if [ ".$SSH_AUTH_SOCK" != . -a ".$SSH_AGENT_PID" != . ]; then
( echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK"
echo "SSH_AGENT_PID=$SSH_AGENT_PID"
) >$agentfile && chmod 600 $agentfile
echo "$prog_name:WARNING: valid agent information in your environment" 1>&2
echo "$prog_name:WARNING: but no saved agent state file -- fixed" 1>&2
fi
fi
# stop the agent
if [ ".$opt_k" = .yes ]; then
# stop the agent
kill=yes
if [ ".$SSH_AUTH_SOCK" != . -a ".$SSH_AGENT_PID" != . ]; then
kill $SSH_AGENT_PID >/dev/null 2>&1 || true
if [ ".$opt_q" = .no ]; then
echo "$prog_name: stopped agent (pid $SSH_AGENT_PID)" 1>&2
fi
rm -f $agentfile
unset SSH_AUTH_SOCK
unset SSH_AGENT_PID
elif [ ".$SSH_AUTH_SOCK" != . -a ".$SSH_AGENT_PID" = . ]; then
if [ ".$opt_q" = .no ]; then
echo "$prog_name: agent running remotely - cannot kill locally" 1>&2
fi
else
if [ ".$opt_q" = .no ]; then
echo "$prog_name: agent not running" 1>&2
fi
fi
fi
# start the agent
if [ ".$opt_s" = .yes ]; then
if [ ".$SSH_AUTH_SOCK" = . -a ".$SSH_AGENT_PID" = . ]; then
eval `nohup $ssh_agent -s </dev/null 2>/dev/null | grep -v 'Agent pid'`
if [ ".$opt_q" != .yes ]; then
echo "$prog_name: spawned agent (pid $SSH_AGENT_PID)" 1>&2
fi
( echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK"
echo "SSH_AGENT_PID=$SSH_AGENT_PID"
) >$agentfile && chmod 600 $agentfile
elif [ ".$SSH_AUTH_SOCK" != . -a ".$SSH_AGENT_PID" = . ]; then
if [ ".$opt_q" = .no ]; then
echo "$prog_name: agent already running remotely - no need to start
locally" 1>&2
fi
else
if [ ".$opt_q" = .no ]; then
echo "$prog_name: agent already running" 1>&2
fi
fi
fi
# setup environment
if [ ".$opt_e" = .yes ]; then
if [ -r $agentfile ]; then
sed -e 's/$/;/g' <$agentfile
echo "export SSH_AUTH_SOCK;"
echo "export SSH_AGENT_PID;"
else
echo "$prog_name:WARNING: agent not (or no longer) available" 1>&2
echo "unset SSH_AUTH_SOCK;"
echo "unset SSH_AGENT_PID;"
fi
fi
# delete key(s) from agent
if [ ".$opt_d" = .yes ]; then
if [ ".$SSH_AUTH_SOCK" = . ]; then
echo "$prog_name:WARNING: agent not available" 1>&2
else
if [ $# -eq 0 ]; then
if [ ".$opt_q" = .no ]; then
echo "$prog_name: deleting all keys" 1>&2
fi
$ssh_add -D
else
if [ ".$opt_q" = .no ]; then
for key in "$@"; do
echo "$prog_name: deleting key $key" 1>&2
done
fi
$ssh_add -d "$@"
fi
fi
fi
# add key(s) into agent
if [ ".$opt_a" = .yes ]; then
if [ ".$SSH_AUTH_SOCK" = . ]; then
echo "$prog_name:WARNING: agent not available" 1>&2
else
if [ $# -eq 0 ]; then
echo "$prog_name:ERROR: no keys specified on command line" 1>&2
exit 1
fi
key_loaded=`$ssh_add -l | awk '{ print $2; }'`
key_missing=""
for key_file in "$@"; do
if [ -f "${key_file}.pub" ]; then
key_this=`ssh-keygen -l -f ${key_file}.pub 2>&1 | awk '{ print $2;
}'`
else
key_this=`ssh-keygen -l -f ${key_file} 2>&1 | awk '{ print $2; }'`
fi
load=yes
for key in $key_loaded; do
if [ ".$key" = ".$key_this" ]; then
load=no
break
fi
done
if [ ".$load" = .yes ]; then
if [ ".$opt_q" = .no ]; then
echo "$prog_name: loading key $key_file" 1>&2
fi
key_missing="$key_missing $key_file"
else
if [ ".$opt_q" = .no ]; then
echo "$prog_name: skipping key $key_file (already loaded)" 1>&2
fi
fi
done
if [ ".$key_missing" != . ]; then
$ssh_add $key_missing
fi
fi
fi
# list key(s) available in agent
if [ ".$opt_l" = .yes ]; then
if [ ".$SSH_AUTH_SOCK" = . ]; then
echo "$prog_name:WARNING: agent not available" 1>&2
else
$ssh_add -l
fi
fi
Index: openpkg-src/openssh3.5/ssh-keyman.1
============================================================
$ cvs update -p -r1.1 ssh-keyman.1
.\" Automatically generated by Pod::Man version 1.15
.\" Tue May 7 19:43:46 2002
.\"
.\" Standard preamble:
.\" ======================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
.\" to do unbreakable dashes and therefore won't be available. \*(C` and
.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr
.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
.\" index entries marked with X<> in POD. Of course, you'll have to process
.\" the output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it
.\" makes way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
.bd B 3
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds :
\\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ======================================================================
.\"
.IX Title "SSH-KEYMAN 1"
.TH SSH-KEYMAN 1 "perl v5.6.1" "2002-05-07" "User Contributed Perl Documentation"
.UC
.SH "NAME"
\&\fBssh-keyman\fR \- authentication key agent management
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBssh-keyman\fR
[\fB\-q\fR]
[\fB\-c\fR]
[\fB\-k\fR]
[\fB\-s\fR]
[\fB\-e\fR]
[\fB\-d\fR]
[\fB\-a\fR]
[\fB\-l\fR]
[\fIkeyfile\fR ...]
.PP
\&\fBssh-keyman\fR
\&\fB\-h\fR
\&\fB\-v\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBssh-keyman\fR is a frontend to the \fBssh-agent\fR and \fBssh-add\fR commands
for managing a long-running \fBssh-agent\fR process. The idea is that
a single \fBssh-agent\fR process is kept persistently running across
multiple user login sessions in order to prevent the startup of multiple
\&\fBssh-agent\fR processes and to avoid having to enter pass-phrases more
often than really necessary from a security point of view.
.PP
The command line options can be combined and are executed internally in
the given order below.
.Ip "\fB\-q\fR, \fB\*(--quiet\fR" 4
.IX Item "-q, quiet"
Quiet operation. Do not print verbose messages.
.Ip "\fB\-c\fR, \fB\*(--cluster\fR" 4
.IX Item "-c, cluster"
Cluster indicator. This forces the use of
\&\fB$HOME/.ssh/agent-\fR\fIhostname\fR as the agent attachment informations
file instead of the default \fB$HOME/.ssh/agent\fR. Use this if your home
directory is NFS-mounted on a cluster of desktops.
.Ip "\fB\-k\fR, \fB\*(--kill\fR" 4
.IX Item "-k, kill"
Kill agent. This makes sure the \fBssh-agent\fR process
is no longer running.
.Ip "\fB\-s\fR, \fB\*(--start\fR" 4
.IX Item "-s, start"
Start agent. This makes sure the \fBssh-agent\fR process is
running. If not, it automatically spawns a new one.
.Ip "\fB\-e\fR, \fB\*(--env\fR" 4
.IX Item "-e, env"
Environment setup. This outputs to \fIstdout\fR the Bourne-Shell commands
necessary to attach the current shell session to the \fBssh-agent\fR
process. The intended usage is "\f(CW\*(C`eval `\f(CBssh-keyman\f(CW \-q \-e
\-s`\*(C'\fR" from
within \fB$HOME/.xsession\fR or \fB$HOME/.bash_login\fR scripts.
.Ip "\fB\-d\fR, \fB\*(--delete\fR" 4
.IX Item "-d, delete"
Delete key. This deletes one or more (or all if not \fIkeyfile\fR arguments
are specified at all) from the \fBssh-agent\fR process.
.Ip "\fB\-a\fR, \fB\*(--add\fR" 4
.IX Item "-a, add"
Add key. This adds one or more keys (in \fIkeyfile\fR) to the \fBssh-agent\fR
process. If a key is already loaded, it is skipped and not reloaded.
Additionally, all specified keys are loaded with a single \fBssh-add\fR
call. This way the pass-phrase dialog is reduced to its possible
minimum.
.Ip "\fB\-l\fR, \fB\*(--list\fR" 4
.IX Item "-l, list"
List keys. This lists the currently available keys in the \fBssh-agent\fR
process.
.Ip "\fB\-h\fR, \fB\*(--help\fR" 4
.IX Item "-h, help"
Help information. Display a usage summary on \fIstdout\fR.
.Ip "\fB\-v\fR, \fB\*(--version\fR" 4
.IX Item "-v, version"
Version information. Display a version summary on \fIstdout\fR.
.SH "EXAMPLE"
.IX Header "EXAMPLE"
\&\fI.xsession\fR:
.PP
.Vb 5
\& eval `ssh-keyman -q -s -e`
\& ssh-keyman -q -a </dev/null \e
\& ~/.ssh/id_rsa_1 \e
\& ~/.ssh/id_rsa_2 \e
\& ~/.ssh/id_rsa_3
.Ve
\&\fI.bash_login\fR:
.PP
.Vb 1
\& eval `ssh-keyman -q -s -e`
.Ve
.SH "FILES"
.IX Header "FILES"
.Ip "\fB$HOME/.ssh/agent\fR" 4
.IX Item "$HOME/.ssh/agent"
The generated shell script for attaching the current shell
session (and all of its sub-processes) to the \fBssh-agent\fR process.
At any time this can be directly sourced from within the shell session
or indirectly through the \fBssh-keyman\fR \fB\-e\fR option.
This file is used if the cluster option \fB\-c\fR is not used.
.Ip "\fB$HOME/.ssh/agent-\fR\fIhostname\fR" 4
.IX Item "$HOME/.ssh/agent-hostname"
The generated shell script for attaching the current shell
session (and all of its sub-processes) to the \fBssh-agent\fR process.
At any time this can be directly sourced from within the shell session
or indirectly through the \fBssh-keyman\fR \fB\-e\fR option.
This file is used if the cluster option \fB\-c\fR is used.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBssh-agent\fR(1), \fBssh-add\fR(1).
.SH "HISTORY"
.IX Header "HISTORY"
\&\fBssh-keyman\fR was written in May 2002 by Ralf S. Engelschall
<[EMAIL PROTECTED]>. It was inspired by the similar program
\&\fBkeychain\fR from Daniel Robbins <[EMAIL PROTECTED]>. The main
difference between \fBkeychain\fR and \fBssh-keyman\fR is that \fBssh-keyman\fR
uses a more orthogonal interface which even allows you to combine
multiple actions into a single call.
Index: openpkg-src/openssh3.5/ssh-keyman.pod
============================================================
$ cvs update -p -r1.1 ssh-keyman.pod
##
## ssh-keyman -- authentication key agent management
## Copyright (c) 2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
## ssh-keyman.pod: Unix manual page (language: POD)
##
=pod
=head1 NAME
B<ssh-keyman> - authentication key agent management
=head1 SYNOPSIS
B<ssh-keyman>
[B<-q>]
[B<-c>]
[B<-k>]
[B<-s>]
[B<-e>]
[B<-d>]
[B<-a>]
[B<-l>]
[I<keyfile> ...]
B<ssh-keyman>
B<-h>
B<-v>
=head1 DESCRIPTION
B<ssh-keyman> is a frontend to the B<ssh-agent> and B<ssh-add> commands
for managing a long-running B<ssh-agent> process. The idea is that
a single B<ssh-agent> process is kept persistently running across
multiple user login sessions in order to prevent the startup of multiple
B<ssh-agent> processes and to avoid having to enter pass-phrases more
often than really necessary from a security point of view.
The command line options can be combined and are executed internally in
the given order below.
=over 4
=item B<-q>, B<--quiet>
Quiet operation. Do not print verbose messages.
=item B<-c>, B<--cluster>
Cluster indicator. This forces the use of
B<$HOME/.ssh/agent->I<hostname> as the agent attachment informations
file instead of the default B<$HOME/.ssh/agent>. Use this if your home
directory is NFS-mounted on a cluster of desktops.
=item B<-k>, B<--kill>
Kill agent. This makes sure the B<ssh-agent> process
is no longer running.
=item B<-s>, B<--start>
Start agent. This makes sure the B<ssh-agent> process is
running. If not, it automatically spawns a new one.
=item B<-e>, B<--env>
Environment setup. This outputs to F<stdout> the Bourne-Shell commands
necessary to attach the current shell session to the B<ssh-agent>
process. The intended usage is "C<eval `B<ssh-keyman> -q -e -s`>" from
within B<$HOME/.xsession> or B<$HOME/.bash_login> scripts.
=item B<-d>, B<--delete>
Delete key. This deletes one or more (or all if not I<keyfile> arguments
are specified at all) from the B<ssh-agent> process.
=item B<-a>, B<--add>
Add key. This adds one or more keys (in I<keyfile>) to the B<ssh-agent>
process. If a key is already loaded, it is skipped and not reloaded.
Additionally, all specified keys are loaded with a single B<ssh-add>
call. This way the pass-phrase dialog is reduced to its possible
minimum.
=item B<-l>, B<--list>
List keys. This lists the currently available keys in the B<ssh-agent>
process.
=item B<-h>, B<--help>
Help information. Display a usage summary on F<stdout>.
=item B<-v>, B<--version>
Version information. Display a version summary on F<stdout>.
=back
=head1 EXAMPLE
F<.xsession>:
eval `ssh-keyman -q -s -e`
ssh-keyman -q -a </dev/null \
~/.ssh/id_rsa_1 \
~/.ssh/id_rsa_2 \
~/.ssh/id_rsa_3
F<.bash_login>:
eval `ssh-keyman -q -s -e`
=head1 FILES
=over 4
=item B<$HOME/.ssh/agent>
The generated shell script for attaching the current shell
session (and all of its sub-processes) to the B<ssh-agent> process.
At any time this can be directly sourced from within the shell session
or indirectly through the B<ssh-keyman> B<-e> option.
This file is used if the cluster option B<-c> is not used.
=item B<$HOME/.ssh/agent->I<hostname>
The generated shell script for attaching the current shell
session (and all of its sub-processes) to the B<ssh-agent> process.
At any time this can be directly sourced from within the shell session
or indirectly through the B<ssh-keyman> B<-e> option.
This file is used if the cluster option B<-c> is used.
=back
=head1 SEE ALSO
B<ssh-agent>(1), B<ssh-add>(1).
=head1 HISTORY
B<ssh-keyman> was written in May 2002 by Ralf S. Engelschall
E<lt>[EMAIL PROTECTED]<gt>. It was inspired by the similar program
B<keychain> from Daniel Robbins E<lt>[EMAIL PROTECTED]<gt>. The main
difference between B<keychain> and B<ssh-keyman> is that B<ssh-keyman>
uses a more orthogonal interface which even allows you to combine
multiple actions into a single call.
=cut
Index: openpkg-src/openssh3.5/ssh_config
============================================================
$ cvs update -p -r1.1 ssh_config
##
## ssh_config -- OpenSSH Client Configuration
##
Host localhost
Compression no
ForwardX11 yes
KeepAlive yes
# Global Default Settings
# (keep this section last here, because
# the rule is "first matching is used")
Host *
BatchMode no
CheckHostIP yes
Protocol 1,2
HostKeyAlgorithms ssh-rsa,ssh-dss
PreferredAuthentications hostbased,publickey,keyboard-interactive,password
Cipher 3des
Ciphers
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
MACs
hmac-sha1,hmac-md5,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
Compression yes
CompressionLevel 4
ConnectionAttempts 2
PubkeyAuthentication yes
DSAAuthentication yes
RSAAuthentication yes
ChallengeResponseAuthentication yes
PasswordAuthentication yes
NumberOfPasswordPrompts 2
RhostsAuthentication no
RhostsRSAAuthentication no
StrictHostKeyChecking no
UsePrivilegedPort no
UseRsh no
FallBackToRsh no
EscapeChar ~
ForwardAgent yes
ForwardX11 no
GatewayPorts no
KeepAlive no
LogLevel INFO
Index: openpkg-src/openssh3.5/sshd_config
============================================================
$ cvs update -p -r1.1 sshd_config
##
## sshd_config -- OpenSSH Daemon Configuration
##
Port 22
ListenAddress 0.0.0.0
Subsystem sftp @l_prefix@/libexec/openssh/sftp-server
Protocol 2,1
HostKey @l_prefix@/etc/openssh/ssh_host_key
HostDsaKey @l_prefix@/etc/openssh/ssh_host_dsa_key
ServerKeyBits 768
KeyRegenerationInterval 3600
PidFile @l_prefix@/var/openssh/sshd.pid
SyslogFacility AUTH
LogLevel INFO
PubkeyAuthentication yes
RSAAuthentication yes
DSAAuthentication yes
PasswordAuthentication yes
RhostsAuthentication no
RhostsRSAAuthentication no
StrictModes yes
IgnoreRhosts yes
KeepAlive yes
GatewayPorts no
X11Forwarding @l_x11forwarding@
Compression yes
UsePrivilegeSeparation no
LoginGraceTime 600
MaxStartups 10:30:60
PermitRootLogin yes
PermitEmptyPasswords no
UseLogin no
PrintMotd yes
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]