I know this question is in regards to Bash & Ksh. But I thought I would post something similar for csh/tcsh, for the record.
On FreeBSD, the default shell is tcsh. You can auto logout a session using the autologout feature of the tcsh shell.
The following will autologout a session after one minute of idle activity.
freebsd82# set -r autologout=’1′
(Wait one minute)
freebsd82# auto-logout
Connection to freebsd82 closed.
The tcsh(1) manpage describes it like this:
autologout (+)
The first word is the number of minutes of inactivity before
automatic logout. The optional second word is the number of
minutes of inactivity before automatic locking. When the shell
automatically logs out, it prints `auto-logout', sets the vari-
able logout to `automatic' and exits. When the shell automati-
cally locks, the user is required to enter his password to con-
tinue working. Five incorrect attempts result in automatic
logout. Set to `60' (automatic logout after 60 minutes, and no
locking) by default in login and superuser shells, but not if
the shell thinks it is running under a window system (i.e., the
DISPLAY environment variable is set), the tty is a pseudo-tty
(pty) or the shell was not so compiled (see the version shell
variable). See also the afsuser and logout shell variables.