This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ssh-host-config Vista and --yes do not run unattended


I've been working on an unattended cygwin/sshd install.? On Vista, the
ssh-host-config script waits for user input at several points when the
"--yes" option is used.? The "--yes" option is usually there to allow
for unattended use of a script, and this behavior breaks the ability
to use the script unattended.

I've fixed this by modifying openssh-5.1p1-10 and csih-0.2.0-1.

To reproduce:

1) Install cygwin with the openssh package on Vista.
2) Run ssh-host-config --yes.

Result:

ssh-host-config stops and waits for user input.

The first problem happens in cygwin-service-installation-
helper.sh.? The script asks a question about creating a special user
"cyg_server" for running sshd under.? The question is worded so that
"no" is the default answer.? This means that if you run
ssh-host-config with "--yes" on Vista, the question is answered "yes"
and the script pauses, waiting for input.

Other problems arise because mv commands stop and ask the user for
permission to overwrite files.

I am attaching patches against ssh-host-config and
cygwin-service-installation-helper.sh.? With these changes,
ssh-host-config can be run unattended on Vista.

I hardcoded a password into ssh-host-config because the -w option to
ssh-host-config doesn't seem to create the same kind of user.? It
would probably be better to modify ssh-host-config so that the -w
option works with the Vista user creation.

--Ben Smith


*** new/ssh-host-config??? 2009-12-07 13:54:26.000000000 -0700
--- usr/bin/ssh-host-config??? 2008-11-20 11:18:43.000000000 -0700
***************
*** 26,32 ****
? privsep_configured=no
? privsep_used=yes
? cygwin_value="ntsec"
! password_value="asecretpassword"

? # ======================================================================
? # Routine: create_host_keys
--- 26,32 ----
? privsep_configured=no
? privsep_used=yes
? cygwin_value="ntsec"
! password_value=

? # ======================================================================
? # Routine: create_host_keys
***************
*** 87,93 ****
????? grep -v 'sshd[ \t][ \t]*22' "${_services}" > "${_serv_tmp}"
????? if [ -f "${_serv_tmp}" ]
????? then
!?????? if mv -f "${_serv_tmp}" "${_services}"
??????? then
????????? csih_inform "Removing sshd from ${_wservices}"
??????? else
--- 87,93 ----
????? grep -v 'sshd[ \t][ \t]*22' "${_services}" > "${_serv_tmp}"
????? if [ -f "${_serv_tmp}" ]
????? then
!?????? if mv "${_serv_tmp}" "${_services}"
??????? then
????????? csih_inform "Removing sshd from ${_wservices}"
??????? else
***************
*** 104,110 ****
??? then
????? if awk '{ if ( $2 ~ /^23\/tcp/ ) print "ssh
22/tcp'"${_spaces}"'SSH Remote Login Protocol\nssh
22/udp'"${_spaces}"'SSH Remote Login Protocol"; print $0; }' <
"${_services}" > "${_serv_tmp}"
????? then
!?????? if mv -f "${_serv_tmp}" "${_services}"
??????? then
????????? csih_inform "Added ssh to ${_wservices}"
??????? else
--- 104,110 ----
??? then
????? if awk '{ if ( $2 ~ /^23\/tcp/ ) print "ssh
22/tcp'"${_spaces}"'SSH Remote Login Protocol\nssh
22/udp'"${_spaces}"'SSH Remote Login Protocol"; print $0; }' <
"${_services}" > "${_serv_tmp}"
????? then
!?????? if mv "${_serv_tmp}" "${_services}"
??????? then
????????? csih_inform "Added ssh to ${_wservices}"
??????? else
***************
*** 163,169 ****
??? ??? ? s/^#StrictModes yes/StrictModes no/" \
????????? < ${SYSCONFDIR}/sshd_config \
????????? > "${sshdconfig_tmp}"
!???? mv -f "${sshdconfig_tmp}" ${SYSCONFDIR}/sshd_config
??? elif [ "${privsep_configured}" != "yes" ]
??? then
????? echo >> ${SYSCONFDIR}/sshd_config
--- 163,169 ----
??? ??? ? s/^#StrictModes yes/StrictModes no/" \
????????? < ${SYSCONFDIR}/sshd_config \
????????? > "${sshdconfig_tmp}"
!???? mv "${sshdconfig_tmp}" ${SYSCONFDIR}/sshd_config
??? elif [ "${privsep_configured}" != "yes" ]
??? then
????? echo >> ${SYSCONFDIR}/sshd_config
***************
*** 196,202 ****
????????? grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}"
????????? if [ -f "${_inetcnf_tmp}" ]
????????? then
!?????????? if mv -f "${_inetcnf_tmp}" "${_inetcnf}"
??????????? then
??? ??? ??? csih_inform "Removed ssh[d] from ${_inetcnf}"
??????????? else
--- 196,202 ----
????????? grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}"
????????? if [ -f "${_inetcnf_tmp}" ]
????????? then
!?????????? if mv "${_inetcnf_tmp}" "${_inetcnf}"
??????????? then
??? ??? ??? csih_inform "Removed ssh[d] from ${_inetcnf}"
??????????? else
***************
*** 218,224 ****
??????? else
????????? sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" >
"${_sshd_inetd_conf_tmp}"
??????? fi
!?????? mv -f "${_sshd_inetd_conf_tmp}" "${_sshd_inetd_conf}"
??????? csih_inform "Updated ${_sshd_inetd_conf}"
????? fi

--- 218,224 ----
??????? else
????????? sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" >
"${_sshd_inetd_conf_tmp}"
??????? fi
!?????? mv "${_sshd_inetd_conf_tmp}" "${_sshd_inetd_conf}"
??????? csih_inform "Updated ${_sshd_inetd_conf}"
????? fi

***************
*** 233,239 ****
??????? grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}"
??????? if [ -f "${_inetcnf_tmp}" ]
??????? then
!???????? if mv -f "${_inetcnf_tmp}" "${_inetcnf}"
????????? then
? ??? ??? csih_inform "Removed sshd from ${_inetcnf}"
????????? else
--- 233,239 ----
??????? grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}"
??????? if [ -f "${_inetcnf_tmp}" ]
??????? then
!???????? if mv "${_inetcnf_tmp}" "${_inetcnf}"
????????? then
? ??? ??? csih_inform "Removed sshd from ${_inetcnf}"
????????? else



*** new/cygwin-service-installation-helper.sh??? 2009-12-07
14:09:14.000000000 -0700
--- usr/share/csih/cygwin-service-installation-helper.sh??? 2009-05-03
18:18:38.000000000 -0700
***************
*** 2414,2420 ****
??????? csih_inform "'${username}' will only be used by registered services."
??????? if [ $opt_force -eq 0 ]
??????? then
!???????? if ! csih_request "Do you want to use that name?"
????????? then
??????????? csih_get_value "Enter the new user name:"
??????????? username="${csih_value}"
--- 2414,2420 ----
??????? csih_inform "'${username}' will only be used by registered services."
??????? if [ $opt_force -eq 0 ]
??????? then
!???????? if csih_request "Do you want to use a different name?"
????????? then
??????????? csih_get_value "Enter the new user name:"
??????????? username="${csih_value}"

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]