Compare commits

...
Author SHA1 Message Date
Damien Miller 34d0b614b3 Prepare for 1.2pre5 1999-10-28 17:51:40 +10:00
Damien Miller 29b5a590f2 Doc updates 1999-10-28 15:46:27 +10:00
Damien Miller 01ab4a25c8 Merged latest OpenBSD changes. 1999-10-28 15:23:30 +10:00
Damien Miller 29d685212f Rename PID file
Add symlinks back to ssh in RPM spec file
1999-10-28 14:34:49 +10:00
Damien Miller 92986dd9ba Re-added old changelog 1999-10-28 14:19:25 +10:00
Damien Miller eff18d6aaa Changelog update before test builds 1999-10-28 14:14:38 +10:00
Damien Miller e413cba972 Disabled code based on autoconf tests 1999-10-28 14:12:54 +10:00
Damien Miller 062307657e Big rename ssh* -> openssh* 1999-10-28 14:03:14 +10:00
Damien Miller 7f6ea0264d - Integrated patch from Dan Brosemer <[email protected]>
- Build fixes
   - Autoconf
   - Change binary names to open*

 - Fixed autoconf script to detect PAM on RH6.1
 - Added tests for libpwdb, and OpenBSD functions to autoconf (not used yet)
1999-10-28 13:25:17 +10:00
47 changed files with 1348 additions and 932 deletions
+36 -578
View File
@@ -1,578 +1,36 @@
Fri Nov 17 16:19:20 1995 Tatu Ylonen <[email protected]>
* Released 1.2.12.
* channels.c: Commented out debugging messages about output draining.
* Added file OVERVIEW to give some idea about the structure of the
ssh software.
Thu Nov 16 16:40:17 1995 Tatu Ylonen <[email protected]>
* canohost.c (get_remote_hostname): Don't ever return NULL (causes
segmentation violation).
* sshconnect.c: Host ip address printed incorrectly with -v.
* Implemented SSH_TTY environment variable.
Wed Nov 15 01:47:40 1995 Tatu Ylonen <[email protected]>
* Implemented server and client option KeepAlive to specify
whether to set SO_KEEPALIVE. Both default to "yes"; to disable
keepalives, set the value to "no" in both the server and the
client configuration files. Updated manual pages.
* sshd.c: Fixed Solaris utmp problem: wrong pid stored in utmp
(patch from Petri Virkkula <[email protected]>).
* login.c (record_logout): Fixed removing user from utmp on BSD
(with HAVE_LIBUTIL_LOGIN).
* Added cleanup functions to be called from fatal(). Arranged for
utmp to be cleaned if sshd terminates by calling fatal (e.g.,
after dropping connection). Eliminated separate client-side
fatal() functions and moved fatal() to log-client.c. Made all
cleanups, including channel_stop_listening() and packet_close()
be called using this mechanism.
Thu Nov 9 09:58:05 1995 Tatu Ylonen <[email protected]>
* sshd.c: Permit immediate login with empty password only if
password authentication is allowed.
Wed Nov 8 00:43:55 1995 Tatu Ylonen <[email protected]>
* Eliminated unix-domain X11 forwarding. Inet-domain forwarding is
now the only supported form. Renamed server option
X11InetForwarding to X11Forwarding, and eliminated
X11UnixForwarding. Updated documentation. Updated RFC (marked
the SSH_CMSG_X11_REQUEST_FORWARDING message (code 26) as
obsolete, and removed all references to it). Increased protocol
version number to 1.3.
* scp.c (main): Added -B (BatchMode). Updated manual page.
* Cleaned up and updated all manual pages.
* clientloop.c: Added new escape sequences ~# (lists forwarded
connections), ~& (background ssh when waiting for forwarded
connections to terminate), ~? (list available escapes).
Polished the output of the connection listing. Updated
documentation.
* uidswap.c: If _POSIX_SAVED_IDS is defined, don't change the real
uid. Assume that _POSIX_SAVED_IDS also applies to seteuid.
This may solve problems with tcp_wrappers (libwrap) showing
connections as coming from root.
Tue Nov 7 20:28:57 1995 Tatu Ylonen <[email protected]>
* Added RandomSeed server configuration option. The argument
specifies the location of the random seed file. Updated
documentation.
* Locate perl5 in configure. Generate make-ssh-known-hosts (with
the correct path for perl5) in Makefile.in, and install it with
the other programs. Updated manual page.
* sshd.c (main): Added a call to umask to set the umask to a
reasonable value.
* compress.c (buffer_compress): Fixed to follow the zlib
documentation (which is slightly confusing).
* INSTALL: Added information about Linux libc.so.4 problem.
Mon Nov 6 15:42:36 1995 Tatu Ylonen <[email protected]>
* (Actually autoconf fix) Installed patch to AC_ARG_PROGRAM.
* sshd.c, sshd.8.in: Renamed $HOME/.environment ->
$HOME/.ssh/environment.
* configure.in: Disable shadow password checking on convex.
Convex has /etc/shadow, but sets pw_passwd automatically if
running as root.
* Eliminated HAVE_ETC_MASTER_PASSWD (NetBSD, FreeBSD); the
pw_passwd field is automatically filled if running as root.
Put explicit code in configure.in to prevent shadow password
checking on FreeBSD and NetBSD.
* serverloop.c (signchld_handler): Don't print error if wait
returns -1.
* Makefile.in (install): Fixed modes of data files.
* Makefile.in (install): Make links for slogin.1.
* make-ssh-known-hosts: Merged a patch from [email protected] to
fix the ping command.
Fri Nov 3 16:25:28 1995 Tatu Ylonen <[email protected]>
* ssh.1.in: Added more information about X11 forwarding.
Thu Nov 2 18:42:13 1995 Tatu Ylonen <[email protected]>
* Changes to use O_NONBLOCK_BROKEN consistently.
* pty.c (pty_make_controlling_tty): Use setpgid instead of
setsid() on Ultrix.
* includes.h: Removed redundant #undefs for Ultrix and Sony News;
these are already handled in configure.in.
Tue Oct 31 13:31:28 1995 Tatu Ylonen <[email protected]>
* configure.in: Define SSH_WTMP to /var/adm/wtmp is wtmp not found.
* configure.in: Disable vhangup on Ultrix. I am told this fixes
the server problems.
Sat Oct 28 14:22:05 1995 Tatu Ylonen <[email protected]>
* sshconnect.c: Fixed a bug in connecting to a multi-homed host.
Restructured the connecting code to never try to use the same
socket a second time after a failed connection.
* Makefile.in: Added explicit -m option to install, and umask 022
when creating directories and the host key.
Fri Oct 27 01:05:10 1995 Tatu Ylonen <[email protected]>
* Makefile.in: Added cleaning of $(ZLIBDIR) to clean and distclean.
* login.c (get_last_login_time): Fixed a typo (define -> defined).
Thu Oct 26 01:28:07 1995 Tatu Ylonen <[email protected]>
* configure.in: Moved testing for ANSI C compiler after the host
specific code (problems on HPUX).
* Minor fixes to /etc/default/login stuff from Bryan O'Sullivan.
* Fixed .SH NAME sections in manual pages.
* compress.c: Trying to fix a mysterious bug in the compression
glue.
* ssh-1.2.11.
* scp.c: disable agent forwarding when running ssh from scp.
* Added compression of plaintext packets using the gzip library
(zlib). Client configuration options Compression and
CompressionLevel (1-9 as in gzip). New ssh and scp option -C
(to enable compression). Updated RFC.
Wed Oct 25 05:11:55 1995 Tatu Ylonen <[email protected]>
* Implemented ProxyCommand stuff based on patches from Bryan
O'Sullivan <[email protected]>.
* Merged BSD login/logout/lastlog patches from Mark Treacy
<[email protected]>.
* sshd.c: Added chdir("/").
Tue Oct 24 00:29:01 1995 Tatu Ylonen <[email protected]>
* Merged RSA environment= patches from Felix Leitner
<[email protected]> with some changes.
* sshd.c: Made the packet code use two separate descriptors for
the connection (one for input, the other for output). This will
make future extensions easier (e.g., non-socket transports, etc.).
sshd -i now uses both stdin and stdout separately.
Mon Oct 23 21:29:28 1995 Tatu Ylonen <[email protected]>
* sshd.c: Merged execle -> execve patches from Mark Martinec
<[email protected]>. This may help with execle bugs on
Convex (environment not getting passed properly). This might
also solve similar problems on Sonys; please test!
* Removed all compatibility code for protocol version 1.0.
THIS MEANS THAT WE ARE NO LONGER COMPATIBLE WITH SSH VERSIONS
PRIOR TO 1.1.0.
* randoms.c (random_acquire_light_environmental_noise): If
/dev/random is available, read up to 32 bytes (256 bits) from
there in non-blocking mode, and mix the new random bytes into
the pool.
* Added client configuration option StrictHostKeyChecking
(disabled by default). If this is enabled, the client will not
automatically add new host keys to $HOME/.ssh/known_hosts;
instead the connection will be refused if the host key is not
known. Similarly, if the host key has changed, the connection
will be refused instead if just issuing a warning. This
provides additional security against man-in-the-middle/trojan
horse attacks (especially in scripts where there is no-one to
see the warnings), but may be quite inconvenient in everyday
interactive use unless /etc/ssh_known_hosts is very complete,
because new host keys must now be added manually.
* sshconnect.c (ssh_connect): Use the user's uid when creating the
socket and connecting it. I am hoping that this might help with
tcp_wrappers showing the remote user as root.
* ssh.c: Try inet-domain X11 forwarding regardless of whether we
can get local authorization information. If we don't, we just
come up with fake information; the forwarding code will anyway
generate its own fake information and validate that the client
knows that information. It will then substitute our fake
information for that, but that info should get ignored by the
server if it doesn't support it.
* Added option BatchMode to disable password/passphrase querying
in scripts.
* auth-rh-rsa.c: Changed to use uid-swapping when reading
.ssh/known_hosts.
* sshd.8.in (command): Improved documentation of file permissions
on the manual pages.
Thu Oct 19 21:05:51 1995 Tatu Ylonen <[email protected]>
* ssh-add.c (add_file): Fixed a bug causing ssh to sometimes refer
to freed memory (comment -> saved_comment).
* log-server.c: Added a prefix to debug/warning/error/fatal
messages describing message types. Syslog does not include that
information automatically.
Sun Oct 8 01:56:01 1995 Tatu Ylonen <[email protected]>
* Merged /etc/default/login and MAIL environment variable changes
from Bryan O'Sullivan <[email protected]>.
- mail spool file location
- process /etc/default/login
- add HAVE_ETC_DEFAULT_LOGIN
- new function child_get_env and read_etc_default_login (sshd.c)
* ssh-add.c (add_file): Fixed asking for passphrase.
* Makefile.in: Fixed installing configure-generated man pages when
compiling in a separate object directory.
* sshd.c (main): Moved RSA key generation until after allocating
the port number. (Actually, the code got duplicated because we
never listen when run from inetd.)
* ssh.c: Fixed a problem that caused scp to hang when called with
stdin closed.
Sat Oct 7 03:08:06 1995 Tatu Ylonen <[email protected]>
* Added server config option StrictModes. It specifies whether to
check ownership and modes of home directory and .rhosts files.
* ssh.c: If ssh is renamed/linked to a host name, connect to that
host.
* serverloop.c, clientloop.c: Ignore EAGAIN reported on read from
connection. Solaris has a kernel bug which causes select() to
sometimes wake up even though there is no data available.
* Display all open connections when printing the "Waiting for
forwarded connections to terminate" message.
* sshd.c, readconf.c: Added X11InetForwarding and
X11UnixForwarding server config options.
Thu Oct 5 17:41:16 1995 Tatu Ylonen <[email protected]>
* Some more SCO fixes.
Tue Oct 3 01:04:34 1995 Tatu Ylonen <[email protected]>
* Fixes and cleanups in README, INSTALL, COPYING.
Mon Oct 2 03:36:08 1995 Tatu Ylonen <[email protected]>
* ssh-add.c (add_file): Fixed a bug in ssh-add (xfree: NULL ...).
* Removed .BR from ".SH NAME" in man pages.
Sun Oct 1 04:16:07 1995 Tatu Ylonen <[email protected]>
* ssh-1.2.10.
* configure.in: When checking that the compiler works, check that
it understands ANSI C prototypes.
* Made uidswap error message a debug() to avoid confusing errors
on AIX (AIX geteuid is brain-damaged and fails even for root).
* Fixed an error in sshd.8 (FacistLogging -> FascistLogging).
* Fixed distribution in Makefile.in (missing manual page .in files).
Sat Sep 30 17:38:46 1995 Tatu Ylonen <[email protected]>
* auth-rhosts.c: Fixed serious security problem in
/etc/hosts.equiv authentication.
Fri Sep 29 00:41:02 1995 Tatu Ylonen <[email protected]>
* Include machine/endian.h on Paragon.
* ssh-add.c (add_file): Made ssh-add keep asking for the
passphrase until the user just types return or cancels.
Make the dialog display the comment of the key.
* Read use shosts.equiv in addition to /etc/hosts.equiv.
* sshd.8 is now sshd.8.in and is processed by configure to
substitute the proper paths for various files. Ditto for ssh.1.
Ditto for make-ssh-known-hosts.1.
* configure.in: Moved /etc/sshd_pid to PIDDIR/sshd.pid. PIDDIR
will be /var/run if it exists, and ETCDIR otherwise.
Thu Sep 28 21:52:42 1995 Tatu Ylonen <[email protected]>
* On Ultrix, check if sys/syslog.h needs to be included in
addition to syslog.h.
* make-ssh-known-hosts.pl: Merged Kivinen's fixes for HPUX.
* configure.in: Put -lwrap, -lsocks, etc. at the head of LIBS.
* Fixed case-insensitivity in auth-rhosts.c.
* Added missing socketpair.c to EXTRA_SRCS (needed on SCO), plus
other SCO fixes.
* Makefile.in: Fixed missing install_prefixes.
Wed Sep 27 03:57:00 1995 Tatu Ylonen <[email protected]>
* ssh-1.2.9.
* Added SOCKS support.
* Fixed default setting of IgnoreRhosts option.
* Pass the magic cookie to xauth in stdin instead of command line;
the command line is visible in ps.
* Added processing $HOME/.ssh/rc and /etc/sshrc.
* Added a section to sshd.8 on what happens at login time.
Tue Sep 26 01:27:40 1995 Tatu Ylonen <[email protected]>
* Don't define speed_t on SunOS 4.1.1; it conflicts with system
headers.
* Added support for .hushlogin.
* Added --with-etcdir.
* Read $HOME/.environment after /etc/environment.
Mon Sep 25 03:26:06 1995 Tatu Ylonen <[email protected]>
* Merged patches for SCO Unix (from Michael Henits).
Sun Sep 24 22:28:02 1995 Tatu Ylonen <[email protected]>
* Added ssh option ConnectionAttempts.
Sat Sep 23 12:30:15 1995 Tatu Ylonen <[email protected]>
* sshd.c: Don't print last login time and /etc/motd if a command
has been specified (with ssh -t host command).
* Added support for passing the screen number in X11 forwarding.
It is implemented as a compatible protocol extension, signalled
by SSH_PROTOFLAG_SCREEN_NUMBER by the child.
* clientloop.c: Fixed bugs in the order in which things were
processed. This may solve problems with some data not getting
sent to the server as soon as possible (probably solves the TCP
forwarding delayed close problem). Also, it looked like window
changes might not get transmitted as early as possible in some
cases.
* clientloop.c: Changed to detect window size change that
happened while ssh was suspended.
* ssh.c: Moved the do_session function (client main loop) to
clientloop.c. Divided it into smaller functions. General cleanup.
* ssh-1.2.8
Fri Sep 22 22:07:46 1995 Tatu Ylonen <[email protected]>
* sshconnect.c (ssh_login): Made ssh_login take the options
structure as argument, instead of the individual arguments.
* auth-rhosts.c (check_rhosts_file): Added support for netgroups.
* auth-rhosts.c (check_rhosts_file): Added support for negated
entries.
Thu Sep 21 00:07:56 1995 Tatu Ylonen <[email protected]>
* auth-rhosts.c: Restructured rhosts authentication code.
Hosts.equiv now has same format as .rhosts: user names are allowed.
* Added support for the Intel Paragon.
* sshd.c: Don't use X11 forwarding with spoofing if no xauth
program. Changed configure.in to not define XAUTH_PATH if
there is no xauth program.
* ssh-1.2.7
* sshd.c: Rewrote the code to build the environment. Now also reads
/etc/environment.
* sshd.c: Fixed problems in libwrap code. --with-libwrap now
takes optional library name/path.
* ssh-1.2.6
* Define USE_PIPES by default.
* Added support for Univel Unixware and MachTen.
* Added IgnoreRhosts server option.
* Added USE_STRLEN_FOR_AF_UNIX; it is needed at least on MachTen.
Wed Sep 20 02:41:02 1995 Tatu Ylonen <[email protected]>
* sshd.c (do_child): don't call packet_close when /etc/nologin,
because packet_close does shutdown, and the message does not get
sent.
* pty.c (pty_allocate): Push ttcompat streams module.
* randoms.c (random_acquire_light_environmental_noise): Don't use
the second argument to gettimeofday as it is not supported on
all systems.
* login.c (record_login): Added NULL second argument to gettimeofday.
Tue Sep 19 13:25:48 1995 Tatu Ylonen <[email protected]>
* fixed pclose wait() in sshd key regeneration (now only collects
easily available noise).
* configure.in: test for bsdi before bsd*.
* ssh.c: Don't print "Connection closed" if -q.
Wed Sep 13 04:19:52 1995 Tatu Ylonen <[email protected]>
* Released ssh-1.2.5.
* Hopefully fixed "Waiting for forwarded connections to terminate"
message.
* randoms.c, md5.c: Large modifications to make these work on Cray
(which has no 32 bit integer type).
* Fixed a problem with forwarded connection closes not being
reported immediately.
* ssh.c: fixed rhosts authentication (broken by uid-swapping).
* scp.c: Don't use -l if server user not specified (it made
setting User in the configuration file not work).
* configure.in: don't use -pipe on BSDI.
* randoms.c: Major modifications to make it work without 32 bit
integers (e.g. Cray).
* md5.c: Major modifications to make it work without 32 bit
integers (e.g. Cray).
* Eliminated HPSUX_BROKEN_PTYS. The code is now enabled by
default on all systems.
Mon Sep 11 00:53:12 1995 Tatu Ylonen <[email protected]>
* sshd.c: don't include sshd pathname in log messages.
* Added libwrap stuff (includes support for identd).
* Added OSF/1 C2 extended security stuff.
* Fixed interactions between getuid() and uid-swap stuff.
Sun Sep 10 00:29:27 1995 Tatu Ylonen <[email protected]>
* serverloop.c: Don't send stdout data to client until after a few
milliseconds if there is very little data. This is because some
systems give data from pty one character at a time, which would
multiply data size by about 16.
* serverloop.c: Moved server do_session to a separate file and
renamed it server_loop. Split it into several functions and
partially rewrote it. Fixed "cat /etc/termcap | ssh foo cat" hangup.
* Screwed up something while checking stuff in under cvs. No harm,
but bogus log entries...
Sat Sep 9 02:24:51 1995 Tatu Ylonen <[email protected]>
* minfd.c (_get_permanent_fd): Use SHELL environment variable.
* channels.c (x11_create_display_inet): Created
HPSUX_NONSTANDARD_X11_KLUDGE; it causes DISPLAY to contain the
IP address of the host instead of the name, because HPSUX uses
some magic shared memory communication for local connections.
* Changed SIGHUP processing in server; it should now work multiple
times.
* Added length limits in many debug/log/error/fatal calls just in
case.
* login.c (get_last_login_time): Fixed location of lastlog.
* Rewrote all uid-swapping code. New files uidswap.h, uidswap.c.
* Fixed several security problems involving chmod and chgrp (race
conditions). Added warnings about dubious modes for /tmp/.X11-unix.
Fri Sep 8 20:03:36 1995 Tatu Ylonen <[email protected]>
* Changed readconf.c to never display anything from the config
file. This should now be prevented otherwise, but let's play safe.
* log-server.c: Use %.500s in syslog() just to be sure (they
should already be shorter than 1024 though).
* sshd.c: Moved setuid in child a little earlier (just to be
conservative, there was no security problem that I could detect).
* README, INSTALL: Added info about mailing list and WWW page.
* sshd.c: Added code to use SIGCHLD and wait zombies immediately.
* Merged patch to set ut_addr in utmp.
* Created ChangeLog and added it to Makefile.in.
* Use read_passphrase instead of getpass().
* Added SSH_FALLBACK_CIPHER. Fixed a bug in default cipher
selection (IDEA used to be selected even if not supported by the
server).
* Use no encryption for key files if empty passphrase.
* Added section about --without-idea in INSTALL.
* Version 1.2.0 was released a couple of days ago.
19991028
- Further PAM enhancements.
- Much cleaner
- Now uses account and session modules for all logins.
- Integrated patch from Dan Brosemer <[email protected]>
- Build fixes
- Autoconf
- Change binary names to open*
- Fixed autoconf script to detect PAM on RH6.1
- Added tests for libpwdb, and OpenBSD functions to autoconf
- Released 1.2pre4
- Imported latest OpenBSD CVS code
- Updated README.openssh
- Released 1.2pre5
19991027
- Adapted PAM patch.
- Released 1.0pre2
- Excised my buggy replacements for strlcpy and mkdtemp
- Imported correct OpenBSD strlcpy and mkdtemp routines.
- Reduced arc4random_stir entropy read to 32 bytes (256 bits)
- Picked up correct version number from OpenBSD
- Added sshd.pam PAM configuration file
- Added sshd.init Redhat init script
- Added openssh.spec RPM spec file
- Released 1.2pre3
19991026
- Fixed include paths of OpenSSL functions
- Use OpenSSL MD5 routines
- Imported RC4 code from nanocrypt
- Wrote replacements for OpenBSD arc4random* functions
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
+578
View File
@@ -0,0 +1,578 @@
Fri Nov 17 16:19:20 1995 Tatu Ylonen <[email protected]>
* Released 1.2.12.
* channels.c: Commented out debugging messages about output draining.
* Added file OVERVIEW to give some idea about the structure of the
ssh software.
Thu Nov 16 16:40:17 1995 Tatu Ylonen <[email protected]>
* canohost.c (get_remote_hostname): Don't ever return NULL (causes
segmentation violation).
* sshconnect.c: Host ip address printed incorrectly with -v.
* Implemented SSH_TTY environment variable.
Wed Nov 15 01:47:40 1995 Tatu Ylonen <[email protected]>
* Implemented server and client option KeepAlive to specify
whether to set SO_KEEPALIVE. Both default to "yes"; to disable
keepalives, set the value to "no" in both the server and the
client configuration files. Updated manual pages.
* sshd.c: Fixed Solaris utmp problem: wrong pid stored in utmp
(patch from Petri Virkkula <[email protected]>).
* login.c (record_logout): Fixed removing user from utmp on BSD
(with HAVE_LIBUTIL_LOGIN).
* Added cleanup functions to be called from fatal(). Arranged for
utmp to be cleaned if sshd terminates by calling fatal (e.g.,
after dropping connection). Eliminated separate client-side
fatal() functions and moved fatal() to log-client.c. Made all
cleanups, including channel_stop_listening() and packet_close()
be called using this mechanism.
Thu Nov 9 09:58:05 1995 Tatu Ylonen <[email protected]>
* sshd.c: Permit immediate login with empty password only if
password authentication is allowed.
Wed Nov 8 00:43:55 1995 Tatu Ylonen <[email protected]>
* Eliminated unix-domain X11 forwarding. Inet-domain forwarding is
now the only supported form. Renamed server option
X11InetForwarding to X11Forwarding, and eliminated
X11UnixForwarding. Updated documentation. Updated RFC (marked
the SSH_CMSG_X11_REQUEST_FORWARDING message (code 26) as
obsolete, and removed all references to it). Increased protocol
version number to 1.3.
* scp.c (main): Added -B (BatchMode). Updated manual page.
* Cleaned up and updated all manual pages.
* clientloop.c: Added new escape sequences ~# (lists forwarded
connections), ~& (background ssh when waiting for forwarded
connections to terminate), ~? (list available escapes).
Polished the output of the connection listing. Updated
documentation.
* uidswap.c: If _POSIX_SAVED_IDS is defined, don't change the real
uid. Assume that _POSIX_SAVED_IDS also applies to seteuid.
This may solve problems with tcp_wrappers (libwrap) showing
connections as coming from root.
Tue Nov 7 20:28:57 1995 Tatu Ylonen <[email protected]>
* Added RandomSeed server configuration option. The argument
specifies the location of the random seed file. Updated
documentation.
* Locate perl5 in configure. Generate make-ssh-known-hosts (with
the correct path for perl5) in Makefile.in, and install it with
the other programs. Updated manual page.
* sshd.c (main): Added a call to umask to set the umask to a
reasonable value.
* compress.c (buffer_compress): Fixed to follow the zlib
documentation (which is slightly confusing).
* INSTALL: Added information about Linux libc.so.4 problem.
Mon Nov 6 15:42:36 1995 Tatu Ylonen <[email protected]>
* (Actually autoconf fix) Installed patch to AC_ARG_PROGRAM.
* sshd.c, sshd.8.in: Renamed $HOME/.environment ->
$HOME/.ssh/environment.
* configure.in: Disable shadow password checking on convex.
Convex has /etc/shadow, but sets pw_passwd automatically if
running as root.
* Eliminated HAVE_ETC_MASTER_PASSWD (NetBSD, FreeBSD); the
pw_passwd field is automatically filled if running as root.
Put explicit code in configure.in to prevent shadow password
checking on FreeBSD and NetBSD.
* serverloop.c (signchld_handler): Don't print error if wait
returns -1.
* Makefile.in (install): Fixed modes of data files.
* Makefile.in (install): Make links for slogin.1.
* make-ssh-known-hosts: Merged a patch from [email protected] to
fix the ping command.
Fri Nov 3 16:25:28 1995 Tatu Ylonen <[email protected]>
* ssh.1.in: Added more information about X11 forwarding.
Thu Nov 2 18:42:13 1995 Tatu Ylonen <[email protected]>
* Changes to use O_NONBLOCK_BROKEN consistently.
* pty.c (pty_make_controlling_tty): Use setpgid instead of
setsid() on Ultrix.
* includes.h: Removed redundant #undefs for Ultrix and Sony News;
these are already handled in configure.in.
Tue Oct 31 13:31:28 1995 Tatu Ylonen <[email protected]>
* configure.in: Define SSH_WTMP to /var/adm/wtmp is wtmp not found.
* configure.in: Disable vhangup on Ultrix. I am told this fixes
the server problems.
Sat Oct 28 14:22:05 1995 Tatu Ylonen <[email protected]>
* sshconnect.c: Fixed a bug in connecting to a multi-homed host.
Restructured the connecting code to never try to use the same
socket a second time after a failed connection.
* Makefile.in: Added explicit -m option to install, and umask 022
when creating directories and the host key.
Fri Oct 27 01:05:10 1995 Tatu Ylonen <[email protected]>
* Makefile.in: Added cleaning of $(ZLIBDIR) to clean and distclean.
* login.c (get_last_login_time): Fixed a typo (define -> defined).
Thu Oct 26 01:28:07 1995 Tatu Ylonen <[email protected]>
* configure.in: Moved testing for ANSI C compiler after the host
specific code (problems on HPUX).
* Minor fixes to /etc/default/login stuff from Bryan O'Sullivan.
* Fixed .SH NAME sections in manual pages.
* compress.c: Trying to fix a mysterious bug in the compression
glue.
* ssh-1.2.11.
* scp.c: disable agent forwarding when running ssh from scp.
* Added compression of plaintext packets using the gzip library
(zlib). Client configuration options Compression and
CompressionLevel (1-9 as in gzip). New ssh and scp option -C
(to enable compression). Updated RFC.
Wed Oct 25 05:11:55 1995 Tatu Ylonen <[email protected]>
* Implemented ProxyCommand stuff based on patches from Bryan
O'Sullivan <[email protected]>.
* Merged BSD login/logout/lastlog patches from Mark Treacy
<[email protected]>.
* sshd.c: Added chdir("/").
Tue Oct 24 00:29:01 1995 Tatu Ylonen <[email protected]>
* Merged RSA environment= patches from Felix Leitner
<[email protected]> with some changes.
* sshd.c: Made the packet code use two separate descriptors for
the connection (one for input, the other for output). This will
make future extensions easier (e.g., non-socket transports, etc.).
sshd -i now uses both stdin and stdout separately.
Mon Oct 23 21:29:28 1995 Tatu Ylonen <[email protected]>
* sshd.c: Merged execle -> execve patches from Mark Martinec
<[email protected]>. This may help with execle bugs on
Convex (environment not getting passed properly). This might
also solve similar problems on Sonys; please test!
* Removed all compatibility code for protocol version 1.0.
THIS MEANS THAT WE ARE NO LONGER COMPATIBLE WITH SSH VERSIONS
PRIOR TO 1.1.0.
* randoms.c (random_acquire_light_environmental_noise): If
/dev/random is available, read up to 32 bytes (256 bits) from
there in non-blocking mode, and mix the new random bytes into
the pool.
* Added client configuration option StrictHostKeyChecking
(disabled by default). If this is enabled, the client will not
automatically add new host keys to $HOME/.ssh/known_hosts;
instead the connection will be refused if the host key is not
known. Similarly, if the host key has changed, the connection
will be refused instead if just issuing a warning. This
provides additional security against man-in-the-middle/trojan
horse attacks (especially in scripts where there is no-one to
see the warnings), but may be quite inconvenient in everyday
interactive use unless /etc/ssh_known_hosts is very complete,
because new host keys must now be added manually.
* sshconnect.c (ssh_connect): Use the user's uid when creating the
socket and connecting it. I am hoping that this might help with
tcp_wrappers showing the remote user as root.
* ssh.c: Try inet-domain X11 forwarding regardless of whether we
can get local authorization information. If we don't, we just
come up with fake information; the forwarding code will anyway
generate its own fake information and validate that the client
knows that information. It will then substitute our fake
information for that, but that info should get ignored by the
server if it doesn't support it.
* Added option BatchMode to disable password/passphrase querying
in scripts.
* auth-rh-rsa.c: Changed to use uid-swapping when reading
.ssh/known_hosts.
* sshd.8.in (command): Improved documentation of file permissions
on the manual pages.
Thu Oct 19 21:05:51 1995 Tatu Ylonen <[email protected]>
* ssh-add.c (add_file): Fixed a bug causing ssh to sometimes refer
to freed memory (comment -> saved_comment).
* log-server.c: Added a prefix to debug/warning/error/fatal
messages describing message types. Syslog does not include that
information automatically.
Sun Oct 8 01:56:01 1995 Tatu Ylonen <[email protected]>
* Merged /etc/default/login and MAIL environment variable changes
from Bryan O'Sullivan <[email protected]>.
- mail spool file location
- process /etc/default/login
- add HAVE_ETC_DEFAULT_LOGIN
- new function child_get_env and read_etc_default_login (sshd.c)
* ssh-add.c (add_file): Fixed asking for passphrase.
* Makefile.in: Fixed installing configure-generated man pages when
compiling in a separate object directory.
* sshd.c (main): Moved RSA key generation until after allocating
the port number. (Actually, the code got duplicated because we
never listen when run from inetd.)
* ssh.c: Fixed a problem that caused scp to hang when called with
stdin closed.
Sat Oct 7 03:08:06 1995 Tatu Ylonen <[email protected]>
* Added server config option StrictModes. It specifies whether to
check ownership and modes of home directory and .rhosts files.
* ssh.c: If ssh is renamed/linked to a host name, connect to that
host.
* serverloop.c, clientloop.c: Ignore EAGAIN reported on read from
connection. Solaris has a kernel bug which causes select() to
sometimes wake up even though there is no data available.
* Display all open connections when printing the "Waiting for
forwarded connections to terminate" message.
* sshd.c, readconf.c: Added X11InetForwarding and
X11UnixForwarding server config options.
Thu Oct 5 17:41:16 1995 Tatu Ylonen <[email protected]>
* Some more SCO fixes.
Tue Oct 3 01:04:34 1995 Tatu Ylonen <[email protected]>
* Fixes and cleanups in README, INSTALL, COPYING.
Mon Oct 2 03:36:08 1995 Tatu Ylonen <[email protected]>
* ssh-add.c (add_file): Fixed a bug in ssh-add (xfree: NULL ...).
* Removed .BR from ".SH NAME" in man pages.
Sun Oct 1 04:16:07 1995 Tatu Ylonen <[email protected]>
* ssh-1.2.10.
* configure.in: When checking that the compiler works, check that
it understands ANSI C prototypes.
* Made uidswap error message a debug() to avoid confusing errors
on AIX (AIX geteuid is brain-damaged and fails even for root).
* Fixed an error in sshd.8 (FacistLogging -> FascistLogging).
* Fixed distribution in Makefile.in (missing manual page .in files).
Sat Sep 30 17:38:46 1995 Tatu Ylonen <[email protected]>
* auth-rhosts.c: Fixed serious security problem in
/etc/hosts.equiv authentication.
Fri Sep 29 00:41:02 1995 Tatu Ylonen <[email protected]>
* Include machine/endian.h on Paragon.
* ssh-add.c (add_file): Made ssh-add keep asking for the
passphrase until the user just types return or cancels.
Make the dialog display the comment of the key.
* Read use shosts.equiv in addition to /etc/hosts.equiv.
* sshd.8 is now sshd.8.in and is processed by configure to
substitute the proper paths for various files. Ditto for ssh.1.
Ditto for make-ssh-known-hosts.1.
* configure.in: Moved /etc/sshd_pid to PIDDIR/sshd.pid. PIDDIR
will be /var/run if it exists, and ETCDIR otherwise.
Thu Sep 28 21:52:42 1995 Tatu Ylonen <[email protected]>
* On Ultrix, check if sys/syslog.h needs to be included in
addition to syslog.h.
* make-ssh-known-hosts.pl: Merged Kivinen's fixes for HPUX.
* configure.in: Put -lwrap, -lsocks, etc. at the head of LIBS.
* Fixed case-insensitivity in auth-rhosts.c.
* Added missing socketpair.c to EXTRA_SRCS (needed on SCO), plus
other SCO fixes.
* Makefile.in: Fixed missing install_prefixes.
Wed Sep 27 03:57:00 1995 Tatu Ylonen <[email protected]>
* ssh-1.2.9.
* Added SOCKS support.
* Fixed default setting of IgnoreRhosts option.
* Pass the magic cookie to xauth in stdin instead of command line;
the command line is visible in ps.
* Added processing $HOME/.ssh/rc and /etc/sshrc.
* Added a section to sshd.8 on what happens at login time.
Tue Sep 26 01:27:40 1995 Tatu Ylonen <[email protected]>
* Don't define speed_t on SunOS 4.1.1; it conflicts with system
headers.
* Added support for .hushlogin.
* Added --with-etcdir.
* Read $HOME/.environment after /etc/environment.
Mon Sep 25 03:26:06 1995 Tatu Ylonen <[email protected]>
* Merged patches for SCO Unix (from Michael Henits).
Sun Sep 24 22:28:02 1995 Tatu Ylonen <[email protected]>
* Added ssh option ConnectionAttempts.
Sat Sep 23 12:30:15 1995 Tatu Ylonen <[email protected]>
* sshd.c: Don't print last login time and /etc/motd if a command
has been specified (with ssh -t host command).
* Added support for passing the screen number in X11 forwarding.
It is implemented as a compatible protocol extension, signalled
by SSH_PROTOFLAG_SCREEN_NUMBER by the child.
* clientloop.c: Fixed bugs in the order in which things were
processed. This may solve problems with some data not getting
sent to the server as soon as possible (probably solves the TCP
forwarding delayed close problem). Also, it looked like window
changes might not get transmitted as early as possible in some
cases.
* clientloop.c: Changed to detect window size change that
happened while ssh was suspended.
* ssh.c: Moved the do_session function (client main loop) to
clientloop.c. Divided it into smaller functions. General cleanup.
* ssh-1.2.8
Fri Sep 22 22:07:46 1995 Tatu Ylonen <[email protected]>
* sshconnect.c (ssh_login): Made ssh_login take the options
structure as argument, instead of the individual arguments.
* auth-rhosts.c (check_rhosts_file): Added support for netgroups.
* auth-rhosts.c (check_rhosts_file): Added support for negated
entries.
Thu Sep 21 00:07:56 1995 Tatu Ylonen <[email protected]>
* auth-rhosts.c: Restructured rhosts authentication code.
Hosts.equiv now has same format as .rhosts: user names are allowed.
* Added support for the Intel Paragon.
* sshd.c: Don't use X11 forwarding with spoofing if no xauth
program. Changed configure.in to not define XAUTH_PATH if
there is no xauth program.
* ssh-1.2.7
* sshd.c: Rewrote the code to build the environment. Now also reads
/etc/environment.
* sshd.c: Fixed problems in libwrap code. --with-libwrap now
takes optional library name/path.
* ssh-1.2.6
* Define USE_PIPES by default.
* Added support for Univel Unixware and MachTen.
* Added IgnoreRhosts server option.
* Added USE_STRLEN_FOR_AF_UNIX; it is needed at least on MachTen.
Wed Sep 20 02:41:02 1995 Tatu Ylonen <[email protected]>
* sshd.c (do_child): don't call packet_close when /etc/nologin,
because packet_close does shutdown, and the message does not get
sent.
* pty.c (pty_allocate): Push ttcompat streams module.
* randoms.c (random_acquire_light_environmental_noise): Don't use
the second argument to gettimeofday as it is not supported on
all systems.
* login.c (record_login): Added NULL second argument to gettimeofday.
Tue Sep 19 13:25:48 1995 Tatu Ylonen <[email protected]>
* fixed pclose wait() in sshd key regeneration (now only collects
easily available noise).
* configure.in: test for bsdi before bsd*.
* ssh.c: Don't print "Connection closed" if -q.
Wed Sep 13 04:19:52 1995 Tatu Ylonen <[email protected]>
* Released ssh-1.2.5.
* Hopefully fixed "Waiting for forwarded connections to terminate"
message.
* randoms.c, md5.c: Large modifications to make these work on Cray
(which has no 32 bit integer type).
* Fixed a problem with forwarded connection closes not being
reported immediately.
* ssh.c: fixed rhosts authentication (broken by uid-swapping).
* scp.c: Don't use -l if server user not specified (it made
setting User in the configuration file not work).
* configure.in: don't use -pipe on BSDI.
* randoms.c: Major modifications to make it work without 32 bit
integers (e.g. Cray).
* md5.c: Major modifications to make it work without 32 bit
integers (e.g. Cray).
* Eliminated HPSUX_BROKEN_PTYS. The code is now enabled by
default on all systems.
Mon Sep 11 00:53:12 1995 Tatu Ylonen <[email protected]>
* sshd.c: don't include sshd pathname in log messages.
* Added libwrap stuff (includes support for identd).
* Added OSF/1 C2 extended security stuff.
* Fixed interactions between getuid() and uid-swap stuff.
Sun Sep 10 00:29:27 1995 Tatu Ylonen <[email protected]>
* serverloop.c: Don't send stdout data to client until after a few
milliseconds if there is very little data. This is because some
systems give data from pty one character at a time, which would
multiply data size by about 16.
* serverloop.c: Moved server do_session to a separate file and
renamed it server_loop. Split it into several functions and
partially rewrote it. Fixed "cat /etc/termcap | ssh foo cat" hangup.
* Screwed up something while checking stuff in under cvs. No harm,
but bogus log entries...
Sat Sep 9 02:24:51 1995 Tatu Ylonen <[email protected]>
* minfd.c (_get_permanent_fd): Use SHELL environment variable.
* channels.c (x11_create_display_inet): Created
HPSUX_NONSTANDARD_X11_KLUDGE; it causes DISPLAY to contain the
IP address of the host instead of the name, because HPSUX uses
some magic shared memory communication for local connections.
* Changed SIGHUP processing in server; it should now work multiple
times.
* Added length limits in many debug/log/error/fatal calls just in
case.
* login.c (get_last_login_time): Fixed location of lastlog.
* Rewrote all uid-swapping code. New files uidswap.h, uidswap.c.
* Fixed several security problems involving chmod and chgrp (race
conditions). Added warnings about dubious modes for /tmp/.X11-unix.
Fri Sep 8 20:03:36 1995 Tatu Ylonen <[email protected]>
* Changed readconf.c to never display anything from the config
file. This should now be prevented otherwise, but let's play safe.
* log-server.c: Use %.500s in syslog() just to be sure (they
should already be shorter than 1024 though).
* sshd.c: Moved setuid in child a little earlier (just to be
conservative, there was no security problem that I could detect).
* README, INSTALL: Added info about mailing list and WWW page.
* sshd.c: Added code to use SIGCHLD and wait zombies immediately.
* Merged patch to set ut_addr in utmp.
* Created ChangeLog and added it to Makefile.in.
* Use read_passphrase instead of getpass().
* Added SSH_FALLBACK_CIPHER. Fixed a bug in default cipher
selection (IDEA used to be selected even if not supported by the
server).
* Use no encryption for key files if empty passphrase.
* Added section about --without-idea in INSTALL.
* Version 1.2.0 was released a couple of days ago.
-20
View File
@@ -1,20 +0,0 @@
19991027
- Adapted PAM patch.
- Released 1.0pre2
- Excised my buggy replacements for strlcpy and mkdtemp
- Imported correct OpenBSD strlcpy and mkdtemp routines.
- Reduced arc4random_stir entropy read to 32 bytes (256 bits)
- Picked up correct version number from OpenBSD
- Added sshd.pam PAM configuration file
- Added sshd.init Redhat init script
- Added openssh.spec RPM spec file
- Released 1.2pre3
19991026
- Fixed include paths of OpenSSL functions
- Use OpenSSL MD5 routines
- Imported RC4 code from nanocrypt
- Wrote replacements for OpenBSD arc4random* functions
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
+71 -9
View File
@@ -1,13 +1,75 @@
# $OpenBSD: Makefile,v 1.5 1999/10/25 20:27:26 markus Exp $
# Generated automatically from Makefile.in by configure.
prefix=/usr/local
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
sbindir=${exec_prefix}/sbin
libdir=${exec_prefix}/lib
.include <bsd.own.mk>
CC=gcc
OPT_FLAGS=-g
CFLAGS=$(OPT_FLAGS) -Wall -DETCDIR=\"${prefix}/etc\" -DHAVE_CONFIG_H
TARGETS=bin/libopenssh.a bin/openssh bin/opensshd bin/openssh-add bin/openssh-keygen bin/openssh-agent bin/openscp
LFLAGS=-L./bin
LIBS=-lopenssh -lpam -ldl -lpwdb -lz -lutil -lcrypto
AR=ar
RANLIB=ranlib
SUBDIR= lib ssh sshd ssh-add ssh-keygen ssh-agent scp
OBJS= authfd.o authfile.o auth-passwd.o auth-rhosts.o auth-rh-rsa.o \
auth-rsa.o bufaux.o buffer.o canohost.o channels.o cipher.o \
clientloop.o compress.o crc32.o deattack.o helper.o hostfile.o \
log-client.o login.o log-server.o match.o mpaux.o packet.o pty.o \
readconf.o readpass.o rsa.o servconf.o serverloop.o \
sshconnect.o tildexpand.o ttymodes.o uidswap.o xmalloc.o \
helper.o mktemp.o strlcpy.o rc4.o
distribution:
install -C -o root -g wheel -m 0644 ${.CURDIR}/ssh_config \
${DESTDIR}/etc/ssh_config
install -C -o root -g wheel -m 0644 ${.CURDIR}/sshd_config \
${DESTDIR}/etc/sshd_config
all: $(OBJS) $(TARGETS)
.include <bsd.subdir.mk>
bin/libopenssh.a: authfd.o authfile.o bufaux.o buffer.o canohost.o channels.o cipher.o compat.o compress.o crc32.o deattack.o hostfile.o match.o mpaux.o nchan.o packet.o readpass.o rsa.o tildexpand.o ttymodes.o uidswap.o xmalloc.o helper.o rc4.o mktemp.o strlcpy.o
[ -d bin ] || mkdir bin
$(AR) rv $@ $^
$(RANLIB) $@
bin/openssh: ssh.o sshconnect.o log-client.o readconf.o clientloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/opensshd: sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o pty.o log-server.o login.o servconf.o serverloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openscp: scp.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-add: ssh-add.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-agent: ssh-agent.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-keygen: ssh-keygen.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
clean:
rm -f *.o core bin/* config.status config.cache config.log
install:
install -d $(bindir)
install -d $(sbindir)
install -d $(libdir)
install -c bin/openssh $(bindir)/openssh
install -c bin/openscp $(bindir)/openscp
install -c bin/openssh-add $(bindir)/openssh-add
install -c bin/openssh-agent $(bindir)/openssh-agent
install -c bin/openssh-keygen $(bindir)/openssh-keygen
install -c bin/opensshd $(sbindir)/opensshd
install -c bin/libopenssh.a $(libdir)/libopenssh.a
distclean: clean
rm -f Makefile config.h *~
rm -rf bin
mrproper: distclean
-50
View File
@@ -1,50 +0,0 @@
OPT_FLAGS=-g
CFLAGS=$(OPT_FLAGS) -Wall -DETCDIR=\"/etc/ssh\" -DHAVE_PAM -DHAVE_PWDB
TARGETS=bin/libssh.a bin/ssh bin/sshd bin/ssh-add bin/ssh-keygen bin/ssh-agent bin/scp
LFLAGS=-L./bin
LIBS=-lssh -lcrypto -lz -lutil -lpwdb -lpam -ldl
AR=ar
RANLIB=ranlib
OBJS= authfd.o authfile.o auth-passwd.o auth-rhosts.o auth-rh-rsa.o \
auth-rsa.o bufaux.o buffer.o canohost.o channels.o cipher.o \
clientloop.o compress.o crc32.o deattack.o hostfile.o \
log-client.o login.o log-server.o match.o mpaux.o packet.o pty.o \
readconf.o readpass.o rsa.o servconf.o serverloop.o \
sshconnect.o tildexpand.o ttymodes.o uidswap.o xmalloc.o \
helper.o mktemp.o strlcpy.o rc4.o
all: $(OBJS) $(TARGETS)
bin/libssh.a: authfd.o authfile.o bufaux.o buffer.o canohost.o channels.o cipher.o compat.o compress.o crc32.o deattack.o hostfile.o match.o mpaux.o nchan.o packet.o readpass.o rsa.o tildexpand.o ttymodes.o uidswap.o xmalloc.o helper.o rc4.o mktemp.o strlcpy.o
[ -d bin ] || mkdir bin
$(AR) rv $@ $^
$(RANLIB) $@
bin/ssh: ssh.o sshconnect.o log-client.o readconf.o clientloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/sshd: sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o pty.o log-server.o login.o servconf.o serverloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/scp: scp.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/ssh-add: ssh-add.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/ssh-agent: ssh-agent.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/ssh-keygen: ssh-keygen.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
clean:
rm -f *.o core bin/*
+74
View File
@@ -0,0 +1,74 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
CC=@CC@
OPT_FLAGS=-g
CFLAGS=$(OPT_FLAGS) -Wall -DETCDIR=\"@sysconfdir@\" @DEFS@
TARGETS=bin/libopenssh.a bin/openssh bin/opensshd bin/openssh-add bin/openssh-keygen bin/openssh-agent bin/openscp
LFLAGS=-L./bin
LIBS=-lopenssh @LIBS@
AR=@AR@
RANLIB=@RANLIB@
OBJS= authfd.o authfile.o auth-passwd.o auth-rhosts.o auth-rh-rsa.o \
auth-rsa.o bufaux.o buffer.o canohost.o channels.o cipher.o \
clientloop.o compress.o crc32.o deattack.o helper.o hostfile.o \
log-client.o login.o log-server.o match.o mpaux.o packet.o pty.o \
readconf.o readpass.o rsa.o servconf.o serverloop.o \
sshconnect.o tildexpand.o ttymodes.o uidswap.o xmalloc.o \
helper.o mktemp.o strlcpy.o rc4.o
all: $(OBJS) $(TARGETS)
bin/libopenssh.a: authfd.o authfile.o bufaux.o buffer.o canohost.o channels.o cipher.o compat.o compress.o crc32.o deattack.o hostfile.o match.o mpaux.o nchan.o packet.o readpass.o rsa.o tildexpand.o ttymodes.o uidswap.o xmalloc.o helper.o rc4.o mktemp.o strlcpy.o
[ -d bin ] || mkdir bin
$(AR) rv $@ $^
$(RANLIB) $@
bin/openssh: ssh.o sshconnect.o log-client.o readconf.o clientloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/opensshd: sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o pty.o log-server.o login.o servconf.o serverloop.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openscp: scp.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-add: ssh-add.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-agent: ssh-agent.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
bin/openssh-keygen: ssh-keygen.o log-client.o
[ -d bin ] || mkdir bin
$(CC) -o $@ $^ $(LFLAGS) $(LIBS)
clean:
rm -f *.o core bin/* config.status config.cache config.log
install:
install -d $(bindir)
install -d $(sbindir)
install -d $(libdir)
install -c bin/openssh $(bindir)/openssh
install -c bin/openscp $(bindir)/openscp
install -c bin/openssh-add $(bindir)/openssh-add
install -c bin/openssh-agent $(bindir)/openssh-agent
install -c bin/openssh-keygen $(bindir)/openssh-keygen
install -c bin/opensshd $(sbindir)/opensshd
install -c bin/libopenssh.a $(libdir)/libopenssh.a
distclean: clean
rm -f Makefile config.h *~
rm -rf bin
mrproper: distclean
-11
View File
@@ -1,11 +0,0 @@
CFLAGS+= -I${.CURDIR}/..
.include <bsd.obj.mk>
.if exists(${.CURDIR}/../lib/${__objdir})
LDADD+= -L${.CURDIR}/../lib/${__objdir} -lssh
DPADD+= ${.CURDIR}/../lib/${__objdir}/libssh.a
.else
LDADD+= -L${.CURDIR}/../lib -lssh
DPADD+= ${.CURDIR}/../lib/libssh.a
.endif
+23 -18
View File
@@ -1,25 +1,28 @@
This is a Linux port of OpenBSD's excellent OpenSSH.
OpenSSH is based on the last free version of Tatu Ylonen's SSH with all
patent-encumbered algorithms removed, all known security bugs fixed, new
features reintroduced and many other clean-ups.
OpenSSH is based on the last free version of Tatu Ylonen's SSH with
all patent-encumbered algorithms removed, all known security bugs
fixed, new features reintroduced and many other clean-ups.
This Linux port basically consists of a few fixes to deal with the way that
OpenSSL is usually installed on Linux systems, a few replacements for
OpenBSD library functions and the introduction of partial PAM support.
This Linux port basically consists of a few fixes to deal with the way
that OpenSSL is usually installed on Linux systems, a few replacements
for OpenBSD library functions and the introduction of partial PAM
support.
The PAM support is less than optimal - it is only used when password
authentication is requested, so things like pam_limits will not apply if a
user authenticates with a RSA key. OTOH this is exactly the level of support
that the popular Linux SSH packages have. Perhaps a PAM hacker can rectify
this?
The PAM support is now more functional than the popular packages of
commercial ssh-1.2.x. It checks "account" and "session" modules for
all logins, not just when using password authentication. This code is
very new and needs further testing. I have also added basic libpwdb
support (detected by autoconf).
All new code is released under a XFree style license, which is very liberal.
This code is released with no warranties of any kind, neither I nor my
employer (Internet Business Solutions) will take any responsibility for
any loss, damage or liability arising from the use or abuse of this software.
All new code is released under a XFree style license, which is very
liberal. This code is released with no warranties of any kind,
neither I nor my employer (Internet Business Solutions) will take any
responsibility for any loss, damage or liability arising from the use
or abuse of this software.
OpenSSH depends on Zlib, OpenSSL and PAM. Use the Makefile.GNU to build it.
OpenSSH depends on Zlib, OpenSSL and PAM and optionally libpwdb. It now
uses autoconf to build thanks to Dan Brosemer <[email protected]>
Damien Miller <[email protected]>
Internet Business Solutions
@@ -29,12 +32,14 @@ Credits -
The OpenBSD team
'jonchen' - the original author of PAM support of SSH
Dan Brosemer <[email protected]> - Autoconf and build fixes
Miscellania -
This version of SSH is based upon code retrieved from the OpenBSD CVS
repository on 1999-10-26, which in turn was based on the last free
version of SSH released by Tatu Ylonen.
repository on 1999-10-28 patched by Damien Miller <[email protected]>,
which in turn was based on the last free version of SSH released by
Tatu Ylonen.
Code in helper.[ch] is Copyright 1999 Internet Business Solutions and
is released under a X11-style license (see source file for details).
+7
View File
@@ -0,0 +1,7 @@
/* config.h.in. Generated by hand, don't use autoheader. */
/* Define if your ssl headers are included with #include <ssl/header.h> */
#undef HAVE_SSL
/* Define if your ssl headers are included with #include <openssl/header.h> */
#undef HAVE_OPENSSL
+8 -1
View File
@@ -15,8 +15,9 @@ validity of the host key.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: auth-rsa.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
RCSID("$Id: auth-rsa.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#include "rsa.h"
#include "packet.h"
@@ -25,8 +26,14 @@ RCSID("$Id: auth-rsa.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
#include "mpaux.h"
#include "uidswap.h"
#ifdef HAVE_OPENSSL
#include <openssl/rsa.h>
#include <openssl/md5.h>
#endif
#ifdef HAVE_SSL
#include <ssl/rsa.h>
#include <ssl/md5.h>
#endif
/* Flags that may be set in authorized_keys options. */
extern int no_port_forwarding_flag;
+7 -1
View File
@@ -13,8 +13,9 @@ Functions for connecting the local authentication agent.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: authfd.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
RCSID("$Id: authfd.c,v 1.2 1999/10/28 03:25:17 damien Exp $");
#include "ssh.h"
#include "rsa.h"
@@ -24,7 +25,12 @@ RCSID("$Id: authfd.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
#include "xmalloc.h"
#include "getput.h"
#ifdef HAVE_OPENSSL
#include <openssl/rsa.h>
#endif
#ifdef HAVE_SSL
#include <ssl/rsa.h>
#endif
/* Returns the number of the authentication fd, or -1 if there is none. */
+8 -1
View File
@@ -14,10 +14,17 @@ for reading the passphrase from the user.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: authfile.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
RCSID("$Id: authfile.c,v 1.2 1999/10/28 03:25:17 damien Exp $");
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#endif
#include "xmalloc.h"
#include "buffer.h"
#include "bufaux.h"
+9 -1
View File
@@ -14,11 +14,19 @@ Buffers.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: bufaux.c,v 1.1 1999/10/27 03:42:43 damien Exp $");
RCSID("$Id: bufaux.c,v 1.2 1999/10/28 03:25:17 damien Exp $");
#include "ssh.h"
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#endif
#include "bufaux.h"
#include "xmalloc.h"
#include "getput.h"
+38 -39
View File
@@ -16,7 +16,7 @@ arbitrary tcp/ip connections, and the authentication agent connection.
*/
#include "includes.h"
RCSID("$Id: channels.c,v 1.1 1999/10/27 03:42:44 damien Exp $");
RCSID("$Id: channels.c,v 1.2 1999/10/28 05:23:30 damien Exp $");
#include "ssh.h"
#include "packet.h"
@@ -108,7 +108,8 @@ void channel_permit_all_opens()
int channel_allocate(int type, int sock, char *remote_name)
{
int i, old_channels;
int i, found;
Channel *c;
/* Update the maximum file descriptor value. */
if (sock > channel_max_fd_value)
@@ -128,41 +129,38 @@ int channel_allocate(int type, int sock, char *remote_name)
}
/* Try to find a free slot where to put the new channel. */
for (i = 0; i < channels_alloc; i++)
for (found = -1, i = 0; i < channels_alloc; i++)
if (channels[i].type == SSH_CHANNEL_FREE)
{
/* Found a free slot. Initialize the fields and return its number. */
buffer_init(&channels[i].input);
buffer_init(&channels[i].output);
channels[i].self = i;
channels[i].type = type;
channels[i].x11 = 0;
channels[i].sock = sock;
channels[i].remote_id = -1;
channels[i].remote_name = remote_name;
chan_init_iostates(&channels[i]);
return i;
/* Found a free slot. */
found = i;
break;
}
/* There are no free slots. Must expand the array. */
old_channels = channels_alloc;
channels_alloc += 10;
channels = xrealloc(channels, channels_alloc * sizeof(Channel));
for (i = old_channels; i < channels_alloc; i++)
channels[i].type = SSH_CHANNEL_FREE;
if (found == -1)
{
/* There are no free slots. Take last+1 slot and expand the array. */
found = channels_alloc;
channels_alloc += 10;
debug("channel: expanding %d", channels_alloc);
channels = xrealloc(channels, channels_alloc * sizeof(Channel));
for (i = found; i < channels_alloc; i++)
channels[i].type = SSH_CHANNEL_FREE;
}
/* We know that the next one after the old maximum channel number is now
available. Initialize and return its number. */
buffer_init(&channels[old_channels].input);
buffer_init(&channels[old_channels].output);
channels[old_channels].self = old_channels;
channels[old_channels].type = type;
channels[old_channels].x11 = 0;
channels[old_channels].sock = sock;
channels[old_channels].remote_id = -1;
channels[old_channels].remote_name = remote_name;
chan_init_iostates(&channels[old_channels]);
return old_channels;
/* Initialize and return new channel number. */
c=&channels[found];
buffer_init(&c->input);
buffer_init(&c->output);
chan_init_iostates(c);
c->self = found;
c->type = type;
c->x11 = 0;
c->sock = sock;
c->remote_id = -1;
c->remote_name = remote_name;
debug("channel %d: new [%s]", found, remote_name);
return found;
}
/* Free the channel and close its socket. */
@@ -336,10 +334,10 @@ void channel_prepare_select(fd_set *readset, fd_set *writeset)
packet_put_int(ch->remote_id);
packet_send();
}else{
debug("X11 rejected %d 0x%x 0x%x", ch->self, ch->istate, ch->ostate);
debug("X11 rejected %d i%d/o%d", ch->self, ch->istate, ch->ostate);
chan_read_failed(ch);
chan_write_failed(ch);
debug("X11 rejected %d 0x%x 0x%x", ch->self, ch->istate, ch->ostate);
debug("X11 rejected %d i%d/o%d", ch->self, ch->istate, ch->ostate);
}
break;
@@ -407,9 +405,9 @@ void channel_after_select(fd_set *readset, fd_set *writeset)
break;
}
remote_hostname = get_remote_hostname(newsock);
snprintf(buf, sizeof buf, "port %d, connection from %.200s port %d",
ch->listening_port, remote_hostname,
get_peer_port(newsock));
snprintf(buf, sizeof buf, "listen port %d:%.100s:%d, connect from %.200s:%d",
ch->listening_port, ch->path, ch->host_port,
remote_hostname, get_peer_port(newsock));
xfree(remote_hostname);
newch = channel_allocate(SSH_CHANNEL_OPENING, newsock,
xstrdup(buf));
@@ -830,8 +828,9 @@ char *channel_open_message()
case SSH_CHANNEL_X11_OPEN:
case SSH_CHANNEL_INPUT_DRAINING:
case SSH_CHANNEL_OUTPUT_DRAINING:
snprintf(buf, sizeof buf, " #%d/%d %.300s\r\n",
c->self,c->type,c->remote_name);
snprintf(buf, sizeof buf, " #%d %.300s (t%d r%d i%d o%d)\r\n",
c->self,c->remote_name,
c->type,c->remote_id, c->istate,c->ostate);
buffer_append(&buffer, buf, strlen(buf));
continue;
default:
+7 -1
View File
@@ -11,13 +11,19 @@ Created: Wed Apr 19 17:41:39 1995 ylo
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: cipher.c,v 1.1 1999/10/27 03:42:44 damien Exp $");
RCSID("$Id: cipher.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#include "ssh.h"
#include "cipher.h"
#ifdef HAVE_OPENSSL
#include <openssl/md5.h>
#endif
#ifdef HAVE_SSL
#include <ssl/md5.h>
#endif
/*
* What kind of tripple DES are these 2 routines?
+9 -1
View File
@@ -11,13 +11,21 @@ Created: Wed Apr 19 16:50:42 1995 ylo
*/
/* RCSID("$Id: cipher.h,v 1.1 1999/10/27 03:42:44 damien Exp $"); */
/* RCSID("$Id: cipher.h,v 1.2 1999/10/28 03:25:17 damien Exp $"); */
#include "config.h"
#ifndef CIPHER_H
#define CIPHER_H
#ifdef HAVE_OPENSSL
#include <openssl/des.h>
#include <openssl/blowfish.h>
#endif
#ifdef HAVE_SSL
#include <ssl/des.h>
#include <ssl/blowfish.h>
#endif
/* Cipher types. New types can be added, but old types should not be removed
for compatibility. The maximum allowed value is 31. */
+139
View File
@@ -0,0 +1,139 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* Define to empty if the keyword does not work. */
#undef const
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
/* Define if you don't have vprintf but do have _doprnt. */
#undef HAVE_DOPRNT
/* Define if your struct stat has st_blksize. */
#undef HAVE_ST_BLKSIZE
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define if utime(file, NULL) sets file's timestamp to the present. */
#undef HAVE_UTIME_NULL
/* Define if you have the vprintf function. */
#undef HAVE_VPRINTF
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
/* Define to `int' if <sys/types.h> doesn't define. */
#undef mode_t
/* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define to `unsigned' if <sys/types.h> doesn't define. */
#undef size_t
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
/* Define if your ssl headers are included with #include <ssl/header.h> */
#undef HAVE_SSL
/* Define if your ssl headers are included with #include <openssl/header.h> */
#undef HAVE_OPENSSL
/* Define if you have the arc4random function. */
#undef HAVE_ARC4RANDOM
/* Define if you have the gethostname function. */
#undef HAVE_GETHOSTNAME
/* Define if you have the gettimeofday function. */
#undef HAVE_GETTIMEOFDAY
/* Define if you have the mkdir function. */
#undef HAVE_MKDIR
/* Define if you have the mkdtemp function. */
#undef HAVE_MKDTEMP
/* Define if you have the rmdir function. */
#undef HAVE_RMDIR
/* Define if you have the select function. */
#undef HAVE_SELECT
/* Define if you have the setproctitle function. */
#undef HAVE_SETPROCTITLE
/* Define if you have the socket function. */
#undef HAVE_SOCKET
/* Define if you have the strerror function. */
#undef HAVE_STRERROR
/* Define if you have the strlcpy function. */
#undef HAVE_STRLCPY
/* Define if you have the strspn function. */
#undef HAVE_STRSPN
/* Define if you have the strtol function. */
#undef HAVE_STRTOL
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
/* Define if you have the <paths.h> header file. */
#undef HAVE_PATHS_H
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
/* Define if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the crypto library (-lcrypto). */
#undef HAVE_LIBCRYPTO
/* Define if you have the dl library (-ldl). */
#undef HAVE_LIBDL
/* Define if you have the pam library (-lpam). */
#undef HAVE_LIBPAM
/* Define if you have the pwdb library (-lpwdb). */
#undef HAVE_LIBPWDB
/* Define if you have the util library (-lutil). */
#undef HAVE_LIBUTIL
/* Define if you have the z library (-lz). */
#undef HAVE_LIBZ
+54
View File
@@ -0,0 +1,54 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(auth-krb4.c)
AC_CONFIG_HEADER(config.h)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
dnl Checks for libraries.
dnl Replace `main' with a function in -lcrypto:
AC_CHECK_LIB(crypto, CRYPTO_lock, ,AC_MSG_ERROR([*** libcrypto missing - please install first ***]))
dnl Replace `main' with a function in -lutil:
AC_CHECK_LIB(util, logout, ,AC_MSG_ERROR([*** -lutil missing - this is part of libc. ***]))
dnl Replace `main' with a function in -lz:
AC_CHECK_LIB(z, deflate, ,AC_MSG_ERROR([*** zlib missing - please install first ***]))
dnl check for pwdb
AC_CHECK_LIB(pwdb, pwdb_new, ,AC_MSG_ERROR([*** libpwdb missing - please install first ***]))
dnl check for dl
AC_CHECK_LIB(dl, dlopen, ,AC_MSG_ERROR([*** libdl missing - please install first ***]))
dnl check for pam
AC_CHECK_LIB(pam, pam_authenticate, ,AC_MSG_ERROR([*** PAM missing - please install first ***]))
dnl Check for stuff in path.
AC_CHECK_PROG(AR, ar, ar)
dnl Check for ssl headers
AC_CHECK_HEADER(openssl/bn.h, [AC_DEFINE(HAVE_OPENSSL)], [AC_CHECK_HEADER(ssl/bn.h, [AC_DEFINE(HAVE_SSL)], [AC_MSG_ERROR([*** ssl library missing - please install first ***])])])
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_UID_T
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_STRUCT_ST_BLKSIZE
AC_HEADER_TIME
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_TYPE_SIGNAL
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(gethostname gettimeofday mkdir rmdir select socket strerror strspn strtol strlcpy mkdtemp arc4random setproctitle)
AC_OUTPUT(Makefile)
+10 -6
View File
@@ -45,18 +45,15 @@
#include "rc4.h"
#include "xmalloc.h"
#include "config.h"
#include "helper.h"
#ifndef HAVE_ARC4RANDOM
void get_random_bytes(unsigned char *buf, int len);
static rc4_t *rc4 = NULL;
void setproctitle(const char *fmt, ...)
{
/* FIXME */
}
unsigned int arc4random(void)
{
unsigned int r;
@@ -105,4 +102,11 @@ void get_random_bytes(unsigned char *buf, int len)
exit(1);
}
}
#endif /* !HAVE_ARC4RANDOM */
#ifndef HAVE_SETPROCTITLE
void setproctitle(const char *fmt, ...)
{
/* FIXME */
}
#endif /* !HAVE_SETPROCTITLE */
+7
View File
@@ -36,8 +36,15 @@
#ifndef _HELPER_H
#define _HELPER_H
#include "config.h"
#ifndef HAVE_ARC4RANDOM
unsigned int arc4random(void);
void arc4random_stir(void);
#endif /* !HAVE_ARC4RANDOM */
#ifndef HAVE_SETPROCTITLE
void setproctitle(const char *fmt, ...);
#endif /* !HAVE_SETPROCTITLE */
#endif /* _HELPER_H */
+4 -8
View File
@@ -57,15 +57,17 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
#include "version.h"
#include "config.h"
#include "helper.h"
#include "mktemp.h"
#include "strlcpy.h"
#ifdef HAVE_PAM
#ifdef HAVE_LIBPAM
#include <security/pam_appl.h>
#endif /* HAVE_PAM */
#ifdef HAVE_PWDB
#ifdef HAVE_LIBPWDB
#include <pwdb/pwdb_map.h>
#endif /* HAVE_PWDB */
@@ -83,10 +85,4 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
client program. Socketpairs do not seem to work on all systems. */
#define USE_PIPES 1
#ifndef SHUT_RD
#define SHUT_RD 0
#define SHUT_WR 1
#define SHUT_RDWR 2
#endif /* SHUT_RD */
#endif /* INCLUDES_H */
+5
View File
@@ -47,8 +47,11 @@ static char rcsid[] = "$OpenBSD: mktemp.c,v 1.13 1998/06/30 23:03:13 deraadt Exp
#include <ctype.h>
#include <unistd.h>
#include "config.h"
#include "helper.h"
#ifndef HAVE_MKDTEMP
static int _gettemp __P((char *, int *, int, int));
int
@@ -181,3 +184,5 @@ _gettemp(path, doopen, domkdir, slen)
}
/*NOTREACHED*/
}
#endif /* !HAVE_MKDTEMP */
+4
View File
@@ -1,7 +1,11 @@
#ifndef _MKTEMP_H
#define _MKTEMP_H
#include "config.h"
#ifndef HAVE_MKDTEMP
int mkstemps(char *path, int slen);
int mkstemp(char *path);
char *mkdtemp(char *path);
#endif /* !HAVE_MKDTEMP */
#endif /* _MKTEMP_H */
+10 -2
View File
@@ -14,14 +14,22 @@ precision integers.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: mpaux.c,v 1.1 1999/10/27 03:42:44 damien Exp $");
RCSID("$Id: mpaux.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#include <openssl/md5.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#include <ssl/md5.h>
#endif
#include "getput.h"
#include "xmalloc.h"
#include <openssl/md5.h>
void
compute_session_id(unsigned char session_id[16],
+1 -1
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sun May 7 00:14:37 1995 ylo
.\"
.\" $Id: scp.1,v 1.1 1999/10/27 03:42:44 damien Exp $
.\" $Id: openscp.1,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SCP 1
+1 -1
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sat Apr 22 23:55:14 1995 ylo
.\"
.\" $Id: ssh-add.1,v 1.1 1999/10/27 03:42:45 damien Exp $
.\" $Id: openssh-add.1,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SSH-ADD 1
+1 -1
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sat Apr 23 20:10:43 1995 ylo
.\"
.\" $Id: ssh-agent.1,v 1.1 1999/10/27 03:42:45 damien Exp $
.\" $Id: openssh-agent.1,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SSH-AGENT 1
+1 -1
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sat Apr 22 23:55:14 1995 ylo
.\"
.\" $Id: ssh-keygen.1,v 1.1 1999/10/27 03:42:45 damien Exp $
.\" $Id: openssh-keygen.1,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SSH-KEYGEN 1
+14 -14
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sat Apr 22 21:55:14 1995 ylo
.\"
.\" $Id: ssh.1,v 1.1 1999/10/27 03:42:45 damien Exp $
.\" $Id: openssh.1,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SSH 1
@@ -66,7 +66,7 @@ his/her identity to the remote machine using one of several methods.
First, if the machine the user logs in from is listed in
.Pa /etc/hosts.equiv
or
.Pa /etc/shosts.equiv
.Pa /etc/openssh/shosts.equiv
on the remote machine, and the user names are
the same on both sides, the user is immediately permitted to log in.
Second, if
@@ -89,10 +89,10 @@ means that if the login would be permitted by
.Pa \&.shosts ,
.Pa /etc/hosts.equiv ,
or
.Pa /etc/shosts.equiv ,
.Pa /etc/openssh/shosts.equiv ,
and if additionally the server can verify the client's
host key (see
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
in the
.Sx FILES
section), only then login is
@@ -248,7 +248,7 @@ identifications for all hosts it has ever been used with. The
database is stored in
.Pa \&.ssh/known_hosts
in the user's home directory. Additionally, the file
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
is automatically checked for known hosts. Any new hosts are
automatically added to the user's file. If a host's identification
ever changes,
@@ -416,7 +416,7 @@ obtains configuration data from the following sources (in this order):
command line options, user's configuration file
.Pq Pa $HOME/.ssh/config ,
and system-wide configuration file
.Pq Pa /etc/ssh_config .
.Pq Pa /etc/openssh/ssh_config .
For each parameter, the first obtained value
will be used. The configuration files contain sections bracketed by
"Host" specifications, and that section is only applied for hosts that
@@ -540,7 +540,7 @@ The default is
.Dq no .
.It Cm GlobalKnownHostsFile
Specifies a file to use instead of
.Pa /etc/ssh_known_hosts .
.Pa /etc/openssh/ssh_known_hosts .
.It Cm HostName
Specifies the real host name to log into. This can be used to specify
nicnames or abbreviations for hosts. Default is the name given on the
@@ -672,7 +672,7 @@ ssh will never automatically add host keys to the
file, and refuses to connect hosts whose host key has changed. This
provides maximum protection against trojan horse attacks. However, it
can be somewhat annoying if you don't have good
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
files installed and frequently
connect new hosts. Basically this option forces the user to manually
add any new hosts. Normally this option is disabled, and new hosts
@@ -779,7 +779,7 @@ to the environment.
.It Pa $HOME/.ssh/known_hosts
Records host keys for all hosts the user has logged into (that are not
in
.Pa /etc/ssh_known_hosts ) .
.Pa /etc/openssh/ssh_known_hosts ) .
See
.Xr sshd 8 .
.It Pa $HOME/.ssh/random_seed
@@ -824,7 +824,7 @@ identity files (that is, each line contains the number of bits in
modulus, public exponent, modulus, and comment fields, separated by
spaces). This file is not highly sensitive, but the recommended
permissions are read/write for the user, and not accessible by others.
.It Pa /etc/ssh_known_hosts
.It Pa /etc/openssh/ssh_known_hosts
Systemwide list of known host keys. This file should be prepared by the
system administrator to contain the public host keys of all machines in the
organization. This file should be world-readable. This file contains
@@ -843,7 +843,7 @@ to verify the client host when logging in; other names are needed because
does not convert the user-supplied name to a canonical name before
checking the key, because someone with access to the name servers
would then be able to fool host authentication.
.It Pa /etc/ssh_config
.It Pa /etc/openssh/ssh_config
Systemwide configuration file. This file provides defaults for those
values that are not specified in the user's configuration file, and
for those users who do not have a configuration file. This file must
@@ -870,7 +870,7 @@ Note that by default
will be installed so that it requires successful RSA host
authentication before permitting \s+2.\s0rhosts authentication. If your
server machine does not have the client's host key in
.Pa /etc/ssh_known_hosts ,
.Pa /etc/openssh/ssh_known_hosts ,
you can store it in
.Pa $HOME/.ssh/known_hosts .
The easiest way to do this is to
@@ -897,13 +897,13 @@ manual page). If the client host is found in this file, login is
automatically permitted provided client and server user names are the
same. Additionally, successful RSA host authentication is normally
required. This file should only be writable by root.
.It Pa /etc/shosts.equiv
.It Pa /etc/openssh/shosts.equiv
This file is processed exactly as
.Pa /etc/hosts.equiv .
This file may be useful to permit logins using
.Nm
but not using rsh/rlogin.
.It Pa /etc/sshrc
.It Pa /etc/openssh/sshrc
Commands in this file are executed by
.Nm
when the user logs in just before the user's shell (or command) is started.
+59 -37
View File
@@ -1,6 +1,6 @@
Summary: OpenSSH free Secure Shell (SSH) implementation
Name: openssh
Version: 1.2pre3
Version: 1.2pre5
Release: 1
Packager: Damien Miller <[email protected]>
Source0: openssh-%{version}-linux.tar.gz
@@ -20,6 +20,9 @@ up to date in terms of security and features, as well as removing all
patented algorithms to seperate libraries (OpenSSL).
%changelog
* Thu Oct 28 1999 Damien Miller <[email protected]>
- Use autoconf
- New binary names
* Wed Oct 27 1999 Damien Miller <[email protected]>
- Initial RPMification, based on Jan "Yenya" Kasprzak's <[email protected]> spec.
@@ -29,7 +32,8 @@ patented algorithms to seperate libraries (OpenSSL).
%build
make -f Makefile.GNU OPT_FLAGS="$RPM_OPT_FLAGS"
./configure --prefix=/usr --sysconfdir=/etc/openssh
make OPT_FLAGS="$RPM_OPT_FLAGS"
%install
rm -rf $RPM_BUILD_ROOT
@@ -37,53 +41,71 @@ mkdir -p $RPM_BUILD_ROOT/usr/bin
mkdir -p $RPM_BUILD_ROOT/usr/sbin
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
mkdir -p $RPM_BUILD_ROOT/etc/ssh
mkdir -p $RPM_BUILD_ROOT/etc/openssh
mkdir -p $RPM_BUILD_ROOT/usr/man/man1
mkdir -p $RPM_BUILD_ROOT/usr/man/man8
install -m644 ssh.pam $RPM_BUILD_ROOT/etc/pam.d/ssh
install -m755 sshd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd
install -m600 ssh_config $RPM_BUILD_ROOT/etc/ssh/ssh_config
install -m600 sshd_config $RPM_BUILD_ROOT/etc/ssh/sshd_config
install -m644 opensshd.pam $RPM_BUILD_ROOT/etc/pam.d/opensshd
install -m755 opensshd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/opensshd
install -m600 ssh_config $RPM_BUILD_ROOT/etc/openssh/ssh_config
install -m600 sshd_config $RPM_BUILD_ROOT/etc/openssh/sshd_config
install -s -m755 bin/sshd $RPM_BUILD_ROOT/usr/sbin
install -s -m755 bin/ssh $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/scp $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/ssh-agent $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/ssh-add $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/ssh-keygen $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/opensshd $RPM_BUILD_ROOT/usr/sbin
install -s -m755 bin/openssh $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/openscp $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/openssh-agent $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/openssh-add $RPM_BUILD_ROOT/usr/bin
install -s -m755 bin/openssh-keygen $RPM_BUILD_ROOT/usr/bin
install -m644 sshd.8 $RPM_BUILD_ROOT/usr/man/man8
install -m644 ssh.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 scp.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 ssh-agent.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 ssh-add.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 ssh-keygen.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 opensshd.8 $RPM_BUILD_ROOT/usr/man/man8
install -m644 openssh.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 openscp.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 openssh-agent.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 openssh-add.1 $RPM_BUILD_ROOT/usr/man/man1
install -m644 openssh-keygen.1 $RPM_BUILD_ROOT/usr/man/man1
# Install compatibility symlinks
cd $RPM_BUILD_ROOT/usr/sbin
ln -s opensshd sshd
cd $RPM_BUILD_ROOT/usr/bin
ln -s openssh ssh
ln -s openscp scp
ln -s openssh-agent ssh-agent
ln -s openssh-add ssh-add
ln -s openssh-keygen ssh-keygen
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add sshd
if [ ! -f /etc/ssh/ssh_host_key -o ! -s /etc/ssh/ssh_host_key ]; then
/usr/bin/ssh-keygen -b 1024 -f /etc/ssh/ssh_host_key -N '' >&2
/sbin/chkconfig --add opensshd
if [ ! -f /etc/openssh/ssh_host_key -o ! -s /etc/openssh/ssh_host_key ]; then
/usr/bin/openssh-keygen -b 1024 -f /etc/openssh/ssh_host_key -N '' >&2
fi
if test -r /var/run/sshd.pid
if test -r /var/run/opensshd.pid
then
/etc/rc.d/init.d/sshd restart >&2
/etc/rc.d/init.d/opensshd restart >&2
fi
%preun
if [ "$1" = 0 ]
then
/etc/rc.d/init.d/sshd stop >&2
/sbin/chkconfig --del sshd
/etc/rc.d/init.d/opensshd stop >&2
/sbin/chkconfig --del opensshd
fi
%files
%defattr(-,root,root)
%doc COPYING.Ylonen ChangeLog ChangeLog.linux OVERVIEW
%doc COPYING.Ylonen ChangeLog ChangeLog.Ylonen OVERVIEW
%doc README README.openssh
%attr(0755,root,root) /usr/sbin/opensshd
%attr(0755,root,root) /usr/bin/openssh
%attr(0755,root,root) /usr/bin/openssh-agent
%attr(0755,root,root) /usr/bin/openssh-keygen
%attr(0755,root,root) /usr/bin/openssh-add
%attr(0755,root,root) /usr/bin/openscp
# Symlinks
%attr(0755,root,root) /usr/sbin/sshd
%attr(0755,root,root) /usr/bin/ssh
%attr(0755,root,root) /usr/bin/ssh-agent
@@ -91,15 +113,15 @@ fi
%attr(0755,root,root) /usr/bin/ssh-add
%attr(0755,root,root) /usr/bin/scp
%attr(0755,root,root) /usr/man/man8/sshd.8
%attr(0755,root,root) /usr/man/man1/ssh.1
%attr(0755,root,root) /usr/man/man1/ssh-agent.1
%attr(0755,root,root) /usr/man/man1/ssh-keygen.1
%attr(0755,root,root) /usr/man/man1/ssh-add.1
%attr(0755,root,root) /usr/man/man1/scp.1
%attr(0755,root,root) /usr/man/man8/opensshd.8
%attr(0755,root,root) /usr/man/man1/openssh.1
%attr(0755,root,root) /usr/man/man1/openssh-agent.1
%attr(0755,root,root) /usr/man/man1/openssh-keygen.1
%attr(0755,root,root) /usr/man/man1/openssh-add.1
%attr(0755,root,root) /usr/man/man1/openscp.1
%attr(0600,root,root) %config /etc/ssh/sshd_config
%attr(0600,root,root) %config /etc/pam.d/ssh
%attr(0755,root,root) %config /etc/rc.d/init.d/sshd
%attr(0644,root,root) %config /etc/ssh/ssh_config
%attr(0600,root,root) %config /etc/openssh/sshd_config
%attr(0600,root,root) %config /etc/pam.d/opensshd
%attr(0755,root,root) %config /etc/rc.d/init.d/opensshd
%attr(0644,root,root) %config /etc/openssh/ssh_config
+19 -19
View File
@@ -9,7 +9,7 @@
.\"
.\" Created: Sat Apr 22 21:55:14 1995 ylo
.\"
.\" $Id: sshd.8,v 1.1 1999/10/27 03:42:46 damien Exp $
.\" $Id: opensshd.8,v 1.1 1999/10/28 04:03:14 damien Exp $
.\"
.Dd September 25, 1999
.Dt SSHD 8
@@ -118,7 +118,7 @@ not fork and will only process one connection. This option is only
intended for debugging for the server.
.It Fl f Ar configuration_file
Specifies the name of the configuration file. The default is
.Pa /etc/sshd_config .
.Pa /etc/openssh/sshd_config .
.Nm
refuses to start if there is no configuration file.
.It Fl g Ar login_grace_time
@@ -128,7 +128,7 @@ this many seconds, the server disconnects and exits. A value of zero
indicates no limit.
.It Fl h Ar host_key_file
Specifies the file from which the host key is read (default
.Pa /etc/ssh_host_key ) .
.Pa /etc/openssh/ssh_host_key ) .
This option must be given if
.Nm
is not run as root (as the normal
@@ -165,7 +165,7 @@ Do not print an error message if RSA support is missing.
.Sh CONFIGURATION FILE
.Nm
reads configuration data from
.Pa /etc/sshd_config
.Pa /etc/openssh/sshd_config
(or the file specified with
.Fl f
on the command line). The file
@@ -242,7 +242,7 @@ The default is
.Dq no .
.It Cm HostKey
Specifies the file containing the private host key (default
.Pa /etc/ssh_host_key ) .
.Pa /etc/openssh/ssh_host_key ) .
Note that
.Nm
does not start if this file is group/world-accessible.
@@ -251,7 +251,7 @@ Specifies that rhosts and shosts files will not be used in
authentication.
.Pa /etc/hosts.equiv
and
.Pa /etc/shosts.equiv
.Pa /etc/openssh/shosts.equiv
are still used. The default is
.Dq no .
.It Cm KeepAlive
@@ -455,7 +455,7 @@ Changes to user's home directory.
If
.Pa $HOME/.ssh/rc
exists, runs it; else if
.Pa /etc/sshrc
.Pa /etc/openssh/sshrc
exists, runs
it; otherwise runs xauth. The
.Dq rc
@@ -541,7 +541,7 @@ from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23.\|.\|.\|2334 ylo@niksula
command="dump /home",no-pty,no-port-forwarding 1024 33 23.\|.\|.\|2323 backup.hut.fi
.Sh SSH_KNOWN_HOSTS FILE FORMAT
The
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
and
.Pa $HOME/.ssh/known_hosts
files contain host public keys for all known hosts. The global file should
@@ -564,7 +564,7 @@ pattern on the line.
.Pp
Bits, exponent, and modulus are taken directly from the host key; they
can be obtained, e.g., from
.Pa /etc/ssh_host_key.pub .
.Pa /etc/openssh/ssh_host_key.pub .
The optional comment field continues to the end of the line, and is not used.
.Pp
Lines starting with
@@ -583,25 +583,25 @@ Note that the lines in these files are typically hundreds of characters
long, and you definitely don't want to type in the host keys by hand.
Rather, generate them by a script
or by taking
.Pa /etc/ssh_host_key.pub
.Pa /etc/openssh/ssh_host_key.pub
and adding the host names at the front.
.Ss Examples
closenet,closenet.hut.fi,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi
.Sh FILES
.Bl -tag -width Ds
.It Pa /etc/sshd_config
.It Pa /etc/openssh/sshd_config
Contains configuration data for
.Nm sshd .
This file should be writable by root only, but it is recommended
(though not necessary) that it be world-readable.
.It Pa /etc/ssh_host_key
.It Pa /etc/openssh/ssh_host_key
Contains the private part of the host key.
This file should only be owned by root, readable only by root, and not
accessible to others.
Note that
.Nm
does not start if this file is group/world-accessible.
.It Pa /etc/ssh_host_key.pub
.It Pa /etc/openssh/ssh_host_key.pub
Contains the public part of the host key.
This file should be world-readable but writable only by
root. Its contents should match the private part. This file is not
@@ -622,17 +622,17 @@ This file must be readable by root (which may on some machines imply
it being world-readable if the user's home directory resides on an NFS
volume). It is recommended that it not be accessible by others. The
format of this file is described above.
.It Pa /etc/ssh_known_hosts
.It Pa /etc/openssh/ssh_known_hosts
This file is consulted when using rhosts with RSA host
authentication to check the public key of the host. The key must be
listed in this file to be accepted.
.It Pa $HOME/.ssh/known_hosts
The client uses this file
and
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
to verify that the remote host is the one we intended to
connect. These files should be writable only by root/the owner.
.Pa /etc/ssh_known_hosts
.Pa /etc/openssh/ssh_known_hosts
should be world-readable, and
.Pa $HOME/.ssh/known_hosts
can but need not be world-readable.
@@ -694,7 +694,7 @@ user root access. The only valid use for user names that I can think
of is in negative entries.
.Pp
Note that this warning also applies to rsh/rlogin.
.It Pa /etc/shosts.equiv
.It Pa /etc/openssh/shosts.equiv
This is processed exactly as
.Pa /etc/hosts.equiv .
However, this file may be useful in environments that want to run both
@@ -724,13 +724,13 @@ something similar to: "if read proto cookie; then echo add $DISPLAY
$proto $cookie | xauth -q -; fi".
.Pp
If this file does not exist,
.Pa /etc/sshrc
.Pa /etc/openssh/sshrc
is run, and if that
does not exist either, xauth is used to store the cookie.
.Pp
This file should be writable only by the user, and need not be
readable by anyone else.
.It Pa /etc/sshrc
.It Pa /etc/openssh/sshrc
Like
.Pa $HOME/.ssh/rc .
This can be used to specify
+12 -12
View File
@@ -1,16 +1,16 @@
#!/bin/bash
# Init file for OpenSSH sshd
# Init file for OpenSSH server daemon
#
# chkconfig: 2345 55 25
# description: OpenSSH server daemon
#
# processname: sshd
# config: /etc/ssh/ssh_host_key
# config: /etc/ssh/ssh_host_key.pub
# config: /etc/ssh/ssh_random_seed
# config: /etc/ssh/sshd_config
# pidfile: /var/run/sshd.pid
# processname: opensshd
# config: /etc/openssh/ssh_host_key
# config: /etc/openssh/ssh_host_key.pub
# config: /etc/openssh/ssh_random_seed
# config: /etc/openssh/sshd_config
# pidfile: /var/run/opensshd.pid
# source function library
. /etc/rc.d/init.d/functions
@@ -19,14 +19,14 @@ RETVAL=0
case "$1" in
start)
echo -n "Starting sshd: "
daemon /usr/sbin/sshd
echo -n "Starting opensshd: "
daemon /usr/sbin/opensshd
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd
echo
;;
stop)
echo -n "Shutting down sshd: "
echo -n "Shutting down opensshd: "
killproc sshd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd
@@ -38,11 +38,11 @@ case "$1" in
RETVAL=$?
;;
status)
status sshd
status opensshd
RETVAL=$?
;;
*)
echo "Usage: sshd {start|stop|restart|status}"
echo "Usage: opensshd {start|stop|restart|status}"
exit 1
esac
View File
+7 -1
View File
@@ -13,12 +13,18 @@ Interface for the packet protocol functions.
*/
/* RCSID("$Id: packet.h,v 1.1 1999/10/27 03:42:44 damien Exp $"); */
/* RCSID("$Id: packet.h,v 1.2 1999/10/28 03:25:17 damien Exp $"); */
#include "config.h"
#ifndef PACKET_H
#define PACKET_H
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#endif
/* Sets the socket used for communication. Disables encryption until
packet_set_encryption_key is called. It is permissible that fd_in
+4
View File
@@ -41,6 +41,9 @@
/* $Id: rc4.c,v 1.1.1.1 1999/10/26 05:48:13 damien Exp $ */
#include "config.h"
#ifndef HAVE_ARC4RANDOM
#include "rc4.h"
@@ -103,3 +106,4 @@ void rc4_getbytes(rc4_t *r, unsigned char *buffer, int len)
c++;
}
}
#endif /* !HAVE_ARC4RANDOM */
+5
View File
@@ -44,6 +44,9 @@
#ifndef _RC4_H
#define _RC4_H
#include "config.h"
#ifndef HAVE_ARC4RANDOM
/*! \struct rc4_t
\brief RC4 stream cipher state object
\var s State array
@@ -107,4 +110,6 @@ void rc4_crypt(rc4_t *r, unsigned char *plaintext, int len);
*/
void rc4_getbytes(rc4_t *r, unsigned char *buffer, int len);
#endif /* !HAVE_ARC4RANDOM */
#endif /* _RC4_H */
+9 -1
View File
@@ -13,13 +13,21 @@ RSA key generation, encryption and decryption.
*/
/* RCSID("$Id: rsa.h,v 1.1 1999/10/27 03:42:44 damien Exp $"); */
/* RCSID("$Id: rsa.h,v 1.2 1999/10/28 03:25:17 damien Exp $"); */
#include "config.h"
#ifndef RSA_H
#define RSA_H
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#include <openssl/rsa.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#include <ssl/rsa.h>
#endif
/* Calls SSL RSA_generate_key, only copies to prv and pub */
void rsa_generate_key(RSA *prv, RSA *pub, unsigned int bits);
+4 -4
View File
@@ -42,11 +42,11 @@ and ssh has the necessary privileges.)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: scp.c,v 1.1 1999/10/27 03:42:45 damien Exp $
* $Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $
*/
#include "includes.h"
RCSID("$Id: scp.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
RCSID("$Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $");
#include "ssh.h"
#include "xmalloc.h"
@@ -976,7 +976,7 @@ run_err(const char *fmt, ...)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: scp.c,v 1.1 1999/10/27 03:42:45 damien Exp $
* $Id: scp.c,v 1.2 1999/10/28 05:23:30 damien Exp $
*/
char *
@@ -1183,7 +1183,7 @@ progressmeter(int flag)
" - stalled -");
} else {
remaining = (int)(totalbytes / (statbytes / elapsed) - elapsed);
i = elapsed / 3600;
i = remaining / 3600;
if (i)
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"%2d:", i);
+26 -62
View File
@@ -14,7 +14,7 @@ Adds an identity to the authentication server, or removes an identity.
*/
#include "includes.h"
RCSID("$Id: ssh-add.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
RCSID("$Id: ssh-add.c,v 1.2 1999/10/28 05:23:30 damien Exp $");
#include "rsa.h"
#include "ssh.h"
@@ -22,11 +22,10 @@ RCSID("$Id: ssh-add.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
#include "authfd.h"
void
delete_file(const char *filename)
delete_file(AuthenticationConnection *ac, const char *filename)
{
RSA *key;
char *comment;
AuthenticationConnection *ac;
key = RSA_new();
if (!load_public_key(filename, key, &comment))
@@ -35,55 +34,29 @@ delete_file(const char *filename)
return;
}
/* Send the request to the authentication agent. */
ac = ssh_get_authentication_connection();
if (!ac)
{
fprintf(stderr,
"Could not open a connection to your authentication agent.\n");
RSA_free(key);
xfree(comment);
return;
}
if (ssh_remove_identity(ac, key))
fprintf(stderr, "Identity removed: %s (%s)\n", filename, comment);
else
fprintf(stderr, "Could not remove identity: %s\n", filename);
RSA_free(key);
xfree(comment);
ssh_close_authentication_connection(ac);
}
void
delete_all()
delete_all(AuthenticationConnection *ac)
{
AuthenticationConnection *ac;
/* Get a connection to the agent. */
ac = ssh_get_authentication_connection();
if (!ac)
{
fprintf(stderr,
"Could not open a connection to your authentication agent.\n");
return;
}
/* Send a request to remove all identities. */
if (ssh_remove_all_identities(ac))
fprintf(stderr, "All identities removed.\n");
else
fprintf(stderr, "Failed to remove all identitities.\n");
/* Close the connection to the agent. */
ssh_close_authentication_connection(ac);
}
void
add_file(const char *filename)
add_file(AuthenticationConnection *ac, const char *filename)
{
RSA *key;
RSA *public_key;
AuthenticationConnection *ac;
char *saved_comment, *comment, *pass;
int first;
@@ -131,40 +104,22 @@ add_file(const char *filename)
xfree(saved_comment);
/* Send the key to the authentication agent. */
ac = ssh_get_authentication_connection();
if (!ac)
{
fprintf(stderr,
"Could not open a connection to your authentication agent.\n");
RSA_free(key);
xfree(comment);
return;
}
if (ssh_add_identity(ac, key, comment))
fprintf(stderr, "Identity added: %s (%s)\n", filename, comment);
else
fprintf(stderr, "Could not add identity: %s\n", filename);
RSA_free(key);
xfree(comment);
ssh_close_authentication_connection(ac);
}
void
list_identities()
list_identities(AuthenticationConnection *ac)
{
AuthenticationConnection *ac;
BIGNUM *e, *n;
int bits, status;
char *comment;
int had_identities;
ac = ssh_get_authentication_connection();
if (!ac)
{
fprintf(stderr, "Could not connect to authentication server.\n");
return;
}
e = BN_new();
n = BN_new();
had_identities = 0;
@@ -189,12 +144,12 @@ list_identities()
BN_clear_free(n);
if (!had_identities)
printf("The agent has no identities.\n");
ssh_close_authentication_connection(ac);
}
int
main(int ac, char **av)
main(int argc, char **argv)
{
AuthenticationConnection *ac = NULL;
struct passwd *pw;
char buf[1024];
int no_files = 1;
@@ -211,30 +166,37 @@ main(int ac, char **av)
exit(1);
}
for (i = 1; i < ac; i++)
/* At first, get a connection to the authentication agent. */
ac = ssh_get_authentication_connection();
if (ac == NULL) {
fprintf(stderr, "Could not open a connection to your authentication agent.\n");
exit(1);
}
for (i = 1; i < argc; i++)
{
if (strcmp(av[i], "-l") == 0)
if (strcmp(argv[i], "-l") == 0)
{
list_identities();
list_identities(ac);
no_files = 0; /* Don't default-add/delete if -l. */
continue;
}
if (strcmp(av[i], "-d") == 0)
if (strcmp(argv[i], "-d") == 0)
{
deleting = 1;
continue;
}
if (strcmp(av[i], "-D") == 0)
if (strcmp(argv[i], "-D") == 0)
{
delete_all();
delete_all(ac);
no_files = 0;
continue;
}
no_files = 0;
if (deleting)
delete_file(av[i]);
delete_file(ac, argv[i]);
else
add_file(av[i]);
add_file(ac, argv[i]);
}
if (no_files)
{
@@ -242,13 +204,15 @@ main(int ac, char **av)
if (!pw)
{
fprintf(stderr, "No user found with uid %d\n", (int)getuid());
ssh_close_authentication_connection(ac);
exit(1);
}
snprintf(buf, sizeof buf, "%s/%s", pw->pw_dir, SSH_CLIENT_IDENTITY);
if (deleting)
delete_file(buf);
delete_file(ac, buf);
else
add_file(buf);
add_file(ac, buf);
}
ssh_close_authentication_connection(ac);
exit(0);
}
+16 -1
View File
@@ -13,8 +13,9 @@ The authentication agent program.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: ssh-agent.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
RCSID("$Id: ssh-agent.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#include "ssh.h"
#include "rsa.h"
@@ -26,7 +27,12 @@ RCSID("$Id: ssh-agent.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
#include "getput.h"
#include "mpaux.h"
#ifdef HAVE_OPENSSL
#include <openssl/md5.h>
#endif
#ifdef HAVE_SSL
#include <ssl/md5.h>
#endif
typedef struct
{
@@ -530,6 +536,15 @@ main(int ac, char **av)
exit(1);
}
/* Create a new session and process group */
if (setsid() < 0) {
perror("setsid failed");
exit(1);
}
/* Ignore if a client dies while we are sending a reply */
signal(SIGPIPE, SIG_IGN);
sock = socket(AF_UNIX, SOCK_STREAM, 0);
if (sock < 0)
{
+2 -3
View File
@@ -18,7 +18,7 @@ Modified to work with SSL by Niels Provos <[email protected]> in Canada.
*/
#include "includes.h"
RCSID("$Id: ssh.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
RCSID("$Id: ssh.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#include "xmalloc.h"
#include "ssh.h"
@@ -158,8 +158,6 @@ rsh_connect(char *host, char *user, Buffer *command)
/* Main program for the ssh client. */
uid_t original_real_uid;
int
main(int ac, char **av)
{
@@ -215,6 +213,7 @@ main(int ac, char **av)
else
cp = av0;
if (strcmp(cp, "rsh") != 0 && strcmp(cp, "ssh") != 0 &&
strcmp(cp, "openssh") != 0 && strcmp(cp, "openlogin") != 0 &&
strcmp(cp, "rlogin") != 0 && strcmp(cp, "slogin") != 0)
host = cp;
+16 -2
View File
@@ -13,11 +13,25 @@ Generic header file for ssh.
*/
/* RCSID("$Id: ssh.h,v 1.1 1999/10/27 03:42:45 damien Exp $"); */
/* RCSID("$Id: ssh.h,v 1.3 1999/10/28 04:34:49 damien Exp $"); */
#ifndef SSH_H
#define SSH_H
/* Added by Dan */
#ifndef SHUT_RDWR
enum
{
SHUT_RD = 0, /* No more receptions. */
#define SHUT_RD SHUT_RD
SHUT_WR, /* No more transmissions. */
#define SHUT_WR SHUT_WR
SHUT_RDWR /* No more receptions or transmissions. */
#define SHUT_RDWR SHUT_RDWR
};
#endif
#include "rsa.h"
#include "cipher.h"
@@ -75,7 +89,7 @@ only by root, whereas ssh_config should be world-readable. */
/* The process id of the daemon listening for connections is saved
here to make it easier to kill the correct daemon when necessary. */
#define SSH_DAEMON_PID_FILE PIDDIR "/sshd.pid"
#define SSH_DAEMON_PID_FILE PIDDIR "/opensshd.pid"
/* The directory in user\'s home directory in which the files reside.
The directory should be world-readable (though not all files are). */
+10 -2
View File
@@ -14,10 +14,19 @@ login (authentication) dialog.
*/
#include "config.h"
#include "includes.h"
RCSID("$Id: sshconnect.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
RCSID("$Id: sshconnect.c,v 1.3 1999/10/28 05:23:30 damien Exp $");
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#include <openssl/md5.h>
#endif
#ifdef HAVE_SSL
#include <ssl/bn.h>
#include <ssl/md5.h>
#endif
#include "xmalloc.h"
#include "rsa.h"
#include "ssh.h"
@@ -28,7 +37,6 @@ RCSID("$Id: sshconnect.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
#include "uidswap.h"
#include "compat.h"
#include <openssl/md5.h>
/* Session id for the current session. */
unsigned char session_id[16];
+21 -21
View File
@@ -18,7 +18,7 @@ agent connections.
*/
#include "includes.h"
RCSID("$Id: sshd.c,v 1.3 1999/10/28 03:20:30 damien Exp $");
RCSID("$Id: sshd.c,v 1.4 1999/10/28 04:03:14 damien Exp $");
#include "xmalloc.h"
#include "rsa.h"
@@ -129,7 +129,7 @@ void do_exec_no_pty(const char *command, struct passwd *pw,
void do_child(const char *command, struct passwd *pw, const char *term,
const char *display, const char *auth_proto,
const char *auth_data, const char *ttyname);
#ifdef HAVE_PAM
#ifdef HAVE_LIBPAM
static int pamconv(int num_msg, const struct pam_message **msg,
struct pam_response **resp, void *appdata_ptr);
void do_pam_account_and_session(const char *username, const char *password,
@@ -225,7 +225,7 @@ void do_pam_account_and_session(const char *username, const char *password, cons
eat_packets_and_disconnect(username);
}
}
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
/* Signal handler for SIGHUP. Sshd execs itself when it receives SIGHUP;
the effect is to reread the configuration file (and to regenerate
@@ -809,7 +809,7 @@ main(int ac, char **av)
/* The connection has been terminated. */
log("Closing connection to %.100s", inet_ntoa(sin.sin_addr));
#ifdef HAVE_PAM
#ifdef HAVE_LIBPAM
{
int retval;
@@ -823,7 +823,7 @@ main(int ac, char **av)
fatal_remove_cleanup(&pam_cleanup_proc, NULL);
}
}
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
packet_close();
@@ -1135,17 +1135,17 @@ do_authentication(char *user, int privileged_port)
pwcopy.pw_shell = xstrdup(pw->pw_shell);
pw = &pwcopy;
#ifdef HAVE_PAM
if (PAM_SUCCESS != pam_start("ssh", pw->pw_name, &conv, (pam_handle_t**)&pamh))
#ifdef HAVE_LIBPAM
if (PAM_SUCCESS != pam_start("opensshd", pw->pw_name, &conv, (pam_handle_t**)&pamh))
{
packet_start(SSH_SMSG_FAILURE);
packet_send();
packet_write_wait();
packet_disconnect("PAM initialisation failed.");
}
#endif
fatal_add_cleanup(&pam_cleanup_proc, NULL);
#endif
/* If we are not running as root, the user must have the same uid as the
server. */
@@ -1289,16 +1289,16 @@ do_authentication(char *user, int privileged_port)
log("Rhosts authentication accepted for %.100s, remote %.100s on %.700s.",
user, client_user, get_canonical_hostname());
authenticated = 1;
#ifndef HAVE_PAM
#ifndef HAVE_LIBPAM
xfree(client_user);
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
break;
}
log("Rhosts authentication failed for %.100s, remote %.100s.",
user, client_user);
#ifndef HAVE_PAM
#ifndef HAVE_LIBPAM
xfree(client_user);
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
break;
case SSH_CMSG_AUTH_RHOSTS_RSA:
@@ -1341,18 +1341,18 @@ do_authentication(char *user, int privileged_port)
{
/* Authentication accepted. */
authenticated = 1;
#ifndef HAVE_PAM
#ifndef HAVE_LIBPAM
xfree(client_user);
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
BN_clear_free(client_host_key_e);
BN_clear_free(client_host_key_n);
break;
}
log("Rhosts authentication failed for %.100s, remote %.100s.",
user, client_user);
#ifndef HAVE_PAM
#ifndef HAVE_LIBPAM
xfree(client_user);
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
BN_clear_free(client_host_key_e);
BN_clear_free(client_host_key_n);
break;
@@ -1403,7 +1403,7 @@ do_authentication(char *user, int privileged_port)
packet_integrity_check(plen, 4 + passw_len, type);
}
#ifdef HAVE_PAM
#ifdef HAVE_LIBPAM
pampasswd = password;
if (PAM_SUCCESS == pam_authenticate((pam_handle_t *)pamh, 0))
@@ -1416,7 +1416,7 @@ do_authentication(char *user, int privileged_port)
log("PAM Password authentication for %.100s failed.", user);
break;
}
#else /* HAVE_PAM */
#else /* HAVE_LIBPAM */
/* Try authentication with the password. */
if (auth_password(pw, password))
{
@@ -1432,7 +1432,7 @@ do_authentication(char *user, int privileged_port)
memset(password, 0, strlen(password));
xfree(password);
break;
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
case SSH_CMSG_AUTH_TIS:
/* TIS Authentication is unsupported */
@@ -1470,7 +1470,7 @@ do_authentication(char *user, int privileged_port)
get_canonical_hostname());
}
#ifdef HAVE_PAM
#ifdef HAVE_LIBPAM
do_pam_account_and_session(pw->pw_name, password, client_user, get_canonical_hostname());
/* Clean up */
@@ -1482,7 +1482,7 @@ do_authentication(char *user, int privileged_port)
memset(password, 0, strlen(password));
xfree(password);
}
#endif /* HAVE_PAM */
#endif /* HAVE_LIBPAM */
/* The user has been authenticated and accepted. */
packet_start(SSH_SMSG_SUCCESS);
+2 -2
View File
@@ -2,7 +2,7 @@
Port 22
ListenAddress 0.0.0.0
HostKey /etc/ssh/ssh_host_key
HostKey /etc/openssh/ssh_host_key
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
@@ -20,7 +20,7 @@ KeepAlive yes
SyslogFacility AUTH
RhostsAuthentication no
#
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
# For this to work you will also need host keys in /etc/openssh/ssh_known_hosts
RhostsRSAAuthentication no
#
RSAAuthentication yes
+5
View File
@@ -34,6 +34,9 @@ static char *rcsid = "$OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp
#include <sys/types.h>
#include <string.h>
#include "config.h"
#ifndef HAVE_STRLCPY
/*
* Copy src to string dst of size siz. At most siz-1 characters
* will be copied. Always NUL terminates (unless siz == 0).
@@ -66,3 +69,5 @@ size_t strlcpy(dst, src, siz)
return(s - src - 1); /* count does not include NUL */
}
#endif /* !HAVE_STRLCPY */
+5
View File
@@ -1,4 +1,9 @@
#ifndef _STRLCPY_H
#define _STRLCPY_H
#include "config.h"
#ifndef HAVE_STRLCPY
size_t strlcpy(char *dst, const char *src, size_t siz);
#endif /* !HAVE_STRLCPY */
#endif /* _STRLCPY_H */