- Cygwin contrib improvements from Corinna Vinschen <vinschen@redhat.com>

This commit is contained in:
Damien Miller 2001-03-07 21:38:19 +11:00
parent b29e34d1e4
commit 8ac0a7ec44
3 changed files with 82 additions and 19 deletions

View File

@ -15,6 +15,7 @@
- deraadt@cvs.openbsd.org 2001/03/07 04:05:58 - deraadt@cvs.openbsd.org 2001/03/07 04:05:58
[ssh.1] [ssh.1]
removed dated comment removed dated comment
- Cygwin contrib improvements from Corinna Vinschen <vinschen@redhat.com>
20010306 20010306
- (bal) OpenBSD CVS Sync - (bal) OpenBSD CVS Sync
@ -4429,4 +4430,4 @@
- Wrote replacements for strlcpy and mkdtemp - Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1 - Released 1.0pre1
$Id: ChangeLog,v 1.923 2001/03/07 06:08:50 mouring Exp $ $Id: ChangeLog,v 1.924 2001/03/07 10:38:19 djm Exp $

View File

@ -15,12 +15,8 @@ filesystem (which is recommended) due to the lack of any basic security
features of the FAT/FAT32 filesystems. features of the FAT/FAT32 filesystems.
=========================================================================== ===========================================================================
Since this package is part of the base distribution now, the location If you are installing OpenSSH the first time, you can generate global config
of the files has changed from /usr/local to /usr. The global configuration files and server keys by running
files are in /etc now.
If you are installing OpenSSH the first time, you can generate
global config files and server keys by running
/usr/bin/ssh-host-config /usr/bin/ssh-host-config
@ -39,6 +35,7 @@ Options:
--debug -d Enable shell's debug output. --debug -d Enable shell's debug output.
--yes -y Answer all questions with "yes" automatically. --yes -y Answer all questions with "yes" automatically.
--no -n Answer all questions with "no" automatically. --no -n Answer all questions with "no" automatically.
--port -p <n> sshd listens on port n.
You can create the private and public keys for a user now by running You can create the private and public keys for a user now by running

View File

@ -16,6 +16,7 @@ OLDSYSCONFDIR=${OLDPREFIX}/etc
progname=$0 progname=$0
auto_answer="" auto_answer=""
port_number=22
request() request()
{ {
@ -67,6 +68,11 @@ do
auto_answer=no auto_answer=no
;; ;;
-p | --port )
port_number=$1
shift
;;
*) *)
echo "usage: ${progname} [OPTION]..." echo "usage: ${progname} [OPTION]..."
echo echo
@ -76,6 +82,7 @@ do
echo " --debug -d Enable shell's debug output." echo " --debug -d Enable shell's debug output."
echo " --yes -y Answer all questions with \"yes\" automatically." echo " --yes -y Answer all questions with \"yes\" automatically."
echo " --no -n Answer all questions with \"no\" automatically." echo " --no -n Answer all questions with \"no\" automatically."
echo " --port -p <n> sshd listens on port n."
echo echo
exit 1 exit 1
;; ;;
@ -254,6 +261,11 @@ Host *
IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa IdentityFile ~/.ssh/id_dsa
EOF EOF
if [ "$port_number" != "22" ]
then
echo "Host localhost" >> ${SYSCONFDIR}/ssh_config
echo " Port $port_number" >> ${SYSCONFDIR}/ssh_config
fi
fi fi
# Check if sshd_config exists. If yes, ask for overwriting # Check if sshd_config exists. If yes, ask for overwriting
@ -278,7 +290,7 @@ then
cat > ${SYSCONFDIR}/sshd_config << EOF cat > ${SYSCONFDIR}/sshd_config << EOF
# This is ssh server systemwide configuration file. # This is ssh server systemwide configuration file.
Port 22 Port $port_number
# #
Protocol 2,1 Protocol 2,1
ListenAddress 0.0.0.0 ListenAddress 0.0.0.0
@ -330,7 +342,7 @@ UseLogin no
EOF EOF
fi fi
# Add port 22/tcp to services # Care for services file
_sys="`uname -a`" _sys="`uname -a`"
_nt=`expr "$_sys" : "CYGWIN_NT"` _nt=`expr "$_sys" : "CYGWIN_NT"`
if [ $_nt -gt 0 ] if [ $_nt -gt 0 ]
@ -344,33 +356,86 @@ fi
_services=`cygpath -u "${_wservices}"` _services=`cygpath -u "${_wservices}"`
_serv_tmp=`cygpath -u "${_wserv_tmp}"` _serv_tmp=`cygpath -u "${_wserv_tmp}"`
mount -b -f "${_wservices}" "${_services}" mount -t -f "${_wservices}" "${_services}"
mount -b -f "${_wserv_tmp}" "${_serv_tmp}" mount -t -f "${_wserv_tmp}" "${_serv_tmp}"
if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ] # Remove sshd 22/port from services
if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -eq 0 ]
then then
awk '{ if ( $2 ~ /^23\/tcp/ ) print "sshd 22/tcp #SSH daemon\r"; print $0; }' < "${_services}" > "${_serv_tmp}" grep -v 'sshd[ \t][ \t]*22' "${_services}" > "${_serv_tmp}"
if [ -f "${_serv_tmp}" ] if [ -f "${_serv_tmp}" ]
then then
if mv "${_serv_tmp}" "${_services}" if mv "${_serv_tmp}" "${_services}"
then then
echo "Added sshd to ${_services}" echo "Removing sshd from ${_services}"
else else
echo "Adding sshd to ${_services} failed\!" echo "Removing sshd from ${_services} failed\!"
fi fi
rm -f "${_serv_tmp}" rm -f "${_serv_tmp}"
else else
echo "Adding sshd to ${_services} failed\!" echo "Removing sshd from ${_services} failed\!"
fi
fi
# Add ssh 22/tcp and ssh 22/udp to services
if [ `grep -q 'ssh[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ]
then
awk '{ if ( $2 ~ /^23\/tcp/ ) print "ssh 22/tcp #SSH Remote Login Protocol\nssh 22/udp #SSH Remote Login Protocol"; print $0; }' < "${_services}" > "${_serv_tmp}"
if [ -f "${_serv_tmp}" ]
then
if mv "${_serv_tmp}" "${_services}"
then
echo "Added ssh to ${_services}"
else
echo "Adding ssh to ${_services} failed\!"
fi
rm -f "${_serv_tmp}"
else
echo "Adding ssh to ${_services} failed\!"
fi fi
fi fi
umount "${_services}" umount "${_services}"
umount "${_serv_tmp}" umount "${_serv_tmp}"
# Add sshd line to inetd.conf # Care for inetd.conf file
if [ -f /etc/inetd.conf ] _inetcnf="/etc/inetd.conf"
_inetcnf_tmp="/etc/inetd.conf.$$"
if [ -f "${_inetcnf}" ]
then then
grep -q "^[# \t]*sshd" /etc/inetd.conf || echo "# sshd stream tcp nowait root /usr/sbin/sshd -i" >> /etc/inetd.conf # Check if ssh service is already in use as sshd
with_comment=1
grep -q '^[ \t]*sshd' "${_inetcnf}" && with_comment=0
# Remove sshd line from inetd.conf
if [ `grep -q '^[# \t]*sshd' "${_inetcnf}"; echo $?` -eq 0 ]
then
grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}"
if [ -f "${_inetcnf_tmp}" ]
then
if mv "${_inetcnf_tmp}" "${_inetcnf}"
then
echo "Removed sshd from ${_inetcnf}"
else
echo "Removing sshd from ${_inetcnf} failed\!"
fi
rm -f "${_inetcnf_tmp}"
else
echo "Removing sshd from ${_inetcnf} failed\!"
fi
fi
# Add ssh line to inetd.conf
if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -ne 0 ]
then
if [ "${with_comment}" -eq 0 ]
then
echo 'ssh stream tcp nowait root /usr/sbin/sshd -i' >> "${_inetcnf}"
else
echo '# ssh stream tcp nowait root /usr/sbin/sshd -i' >> "${_inetcnf}"
fi
echo "Added ssh to ${_inetcnf}"
fi
fi fi
if [ "${old_install}" = "1" ] if [ "${old_install}" = "1" ]