Mail Archives: cygwin/2001/03/05/00:03:32
> Looks nice. Could you please send me a diff -up? It's way easier
> to read and apply.
I made one more update to also put the requested port into ssh_config. One
thing -- should the generation of ssh_config be part of ssh-user-config
rather than ssh-host-config?
--- /bin/ssh-host-config Thu Mar 1 02:28:30 2001
+++ /home/root/ssh-newhost-config Sun Mar 4 22:53:30 2001
@@ -16,6 +16,7 @@ OLDSYSCONFDIR=${OLDPREFIX}/etc
progname=$0
auto_answer=""
+port_number=22
request()
{
@@ -67,6 +68,11 @@ do
auto_answer=no
;;
+ -p | --port )
+ port_number=$1
+ shift
+ ;;
+
*)
echo "usage: ${progname} [OPTION]..."
echo
@@ -76,6 +82,7 @@ do
echo " --debug -d Enable shell's debug output."
echo " --yes -y Answer all questions with \"yes\"
automatically."
echo " --no -n Answer all questions with \"no\"
automatically."
+ echo " --port -p <n> sshd listens on port n."
echo
exit 1
;;
@@ -247,6 +254,10 @@ then
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
EOF
+ if [ "$port_number" != "22" ]
+ then
+ echo " Port $port_number" >> ${SYSCONFDIR}/ssh_config
+ fi
fi
# Check if sshd_config exists. If yes, ask for overwriting
@@ -272,7 +283,7 @@ then
# This is the sshd server system-wide configuration file. See sshd(8)
# for more information.
-Port 22
+Port $port_number
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::
@@ -325,7 +336,7 @@ Subsystem sftp /usr/sbin/sftp-se
EOF
fi
-# Add port 22/tcp to services
+# Add port $port_number/tcp to services
_sys="`uname -a`"
_nt=`expr "$_sys" : "CYGWIN_NT"`
if [ $_nt -gt 0 ]
@@ -342,11 +353,28 @@ _serv_tmp=`cygpath -u "${_wserv_tmp}"`
mount -b -f "${_wservices}" "${_services}"
mount -b -f "${_wserv_tmp}" "${_serv_tmp}"
-if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ]
+cat > /tmp/sshd_awk.$$ << EOF
+\$1 == "sshd" { next }
+! finished && \$2 + 0 >= $port_number {
+ finished = 1
+ if ( \$2 + 0 == $port_number ) {
+ # Problem -- non-sshd port assignment already exists.
+ } else {
+ print "sshd $port_number/tcp
#SSH daemon\r"
+ }
+}
+{ print \$0 }
+EOF
+
+awk -f /tmp/sshd_awk.$$ < "${_services}" > "${_serv_tmp}"
+rm -f /tmp/sshd_awk.$$
+
+if [ -f "${_serv_tmp}" ]
then
- awk '{ if ( $2 ~ /^23\/tcp/ ) print "sshd 22/tcp
#SSH daemon\r"; print $0; }' < "${_services}" > "${_serv_tmp}"
- if [ -f "${_serv_tmp}" ]
+ if [ `egrep -q '^sshd[ \t]' "${_serv_tmp}"; echo $?` -ne 0 ]
then
+ echo "Unable to add sshd to ${_services} as port $port_number already
in use"
+ else
if mv "${_serv_tmp}" "${_services}"
then
echo "Added sshd to ${_services}"
@@ -354,9 +382,9 @@ then
echo "Adding sshd to ${_services} failed\!"
fi
rm -f "${_serv_tmp}"
- else
- echo "Adding sshd to ${_services} failed\!"
fi
+else
+ echo "Adding sshd to ${_services} failed\!"
fi
umount "${_services}"
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -