From owner-freebsd-bugs@FreeBSD.ORG Sat Nov 13 16:50:28 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 037F416A4CE for ; Sat, 13 Nov 2004 16:50:28 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id D730743D31 for ; Sat, 13 Nov 2004 16:50:27 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.11/8.12.11) with ESMTP id iADGoROx086966 for ; Sat, 13 Nov 2004 16:50:27 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id iADGoRdG086964; Sat, 13 Nov 2004 16:50:27 GMT (envelope-from gnats) Resent-Date: Sat, 13 Nov 2004 16:50:27 GMT Resent-Message-Id: <200411131650.iADGoRdG086964@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Oliver Lehmann Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8B38C16A4CE; Sat, 13 Nov 2004 16:49:07 +0000 (GMT) Received: from kartoffel.salatschuessel.net (pD9E210B0.dip.t-dialin.net [217.226.16.176]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7A0EE43D46; Sat, 13 Nov 2004 16:49:06 +0000 (GMT) (envelope-from olivleh1@kartoffel.salatschuessel.net) Received: from kartoffel.salatschuessel.net (localhost [127.0.0.1]) iADGoFMR055005; Sat, 13 Nov 2004 17:50:15 +0100 (CET) (envelope-from olivleh1@kartoffel.salatschuessel.net) Received: (from olivleh1@localhost)iADGoFQk055004; Sat, 13 Nov 2004 17:50:15 +0100 (CET) (envelope-from olivleh1) Message-Id: <200411131650.iADGoFQk055004@kartoffel.salatschuessel.net> Date: Sat, 13 Nov 2004 17:50:15 +0100 (CET) From: Oliver Lehmann To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: Oliver Lehmann Subject: bin/73909: rc.d/sshd does not work with ports-ssh X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Oliver Lehmann List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Nov 2004 16:50:28 -0000 >Number: 73909 >Category: bin >Synopsis: rc.d/sshd does not work with ports-ssh >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Nov 13 16:50:27 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Oliver Lehmann >Release: FreeBSD 4.10-STABLE i386 >Organization: >Environment: System: FreeBSD kartoffel.salatschuessel.net 4.10-STABLE FreeBSD 4.10-STABLE #0: Fri Jun 4 20:32:48 CEST 2004 olivleh1@kartoffel.salatschuessel.net:/usr/obj/usr/src/sys/KARTOFFEL i386 FreeBSD avocado.salatschuessel.net 5.3-STABLE FreeBSD 5.3-STABLE #1: Sat Nov 13 15:16:49 CET 2004 olivleh1@avocado.salatschuessel.net:/usr/obj/usr/src/sys/AVOCADO i386 >Description: the script complains about a nonexistent /usr/sbin/ssh-keygen... that is true.. because it is instaled in /usr/local/bin/ssh-keygen if I use sshd from ports >How-To-Repeat: don't install base-ssh and base-ssl remove /etc/ssh keep sshd_enable="YES" and sshd_program="/usr/local/sbin/sshd" in your rc.conf run /etc/rc.d/sshd start >Fix: --- sshd.diff begins here --- --- sshd.orig Sat Nov 13 17:30:12 2004 +++ sshd Sat Nov 13 17:41:16 2004 @@ -15,9 +15,18 @@ start_precmd="sshd_precmd" pidfile="/var/run/${name}.pid" extra_commands="keygen reload" timeout=300 +get_prefix() { + PREFIX=${sshd_program%%/sbin/sshd} + if [ "$PREFIX" != "/usr" ] ; then + ETCDIR="$PREFIX/etc" + else + ETCDIR="/etc" + fi +} + user_reseed() { ( @@ -42,47 +50,49 @@ sshd_keygen() { + get_prefix ( umask 022 # Can't do anything if ssh is not installed - [ -x /usr/bin/ssh-keygen ] || { - warn "/usr/bin/ssh-keygen does not exist." + [ -x ${PREFIX}/bin/ssh-keygen ] || { + warn "${PREFIX}/bin/ssh-keygen does not exist." return 1 } - if [ -f /etc/ssh/ssh_host_key ]; then + if [ -f ${ETCDIR}/ssh/ssh_host_key ]; then echo "You already have an RSA host key" \ - "in /etc/ssh/ssh_host_key" + "in ${ETCDIR}/ssh/ssh_host_key" echo "Skipping protocol version 1 RSA Key Generation" else - /usr/bin/ssh-keygen -t rsa1 -b 1024 \ - -f /etc/ssh/ssh_host_key -N '' + ${PREFIX}/bin/ssh-keygen -t rsa1 -b 1024 \ + -f ${ETCDIR}/ssh/ssh_host_key -N '' fi - if [ -f /etc/ssh/ssh_host_dsa_key ]; then + if [ -f ${ETCDIR}/ssh/ssh_host_dsa_key ]; then echo "You already have a DSA host key" \ - "in /etc/ssh/ssh_host_dsa_key" + "in ${ETCDIR}/ssh/ssh_host_dsa_key" echo "Skipping protocol version 2 DSA Key Generation" else - /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' + ${PREFIX}/bin/ssh-keygen -t dsa -f ${ETCDIR}/ssh/ssh_host_dsa_key -N '' fi - if [ -f /etc/ssh/ssh_host_rsa_key ]; then + if [ -f ${ETCDIR}/ssh/ssh_host_rsa_key ]; then echo "You already have a RSA host key" \ - "in /etc/ssh/ssh_host_rsa_key" + "in ${ETCDIR}/ssh/ssh_host_rsa_key" echo "Skipping protocol version 2 RSA Key Generation" else - /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' + ${PREFIX}/bin/ssh-keygen -t rsa -f ${ETCDIR}/ssh/ssh_host_rsa_key -N '' fi ) } sshd_precmd() { - if [ ! -f /etc/ssh/ssh_host_key -o \ - ! -f /etc/ssh/ssh_host_dsa_key -o \ - ! -f /etc/ssh/ssh_host_rsa_key ]; then + get_prefix + if [ ! -f ${ETCDIR}/ssh/ssh_host_key -o \ + ! -f ${ETCDIR}/ssh/ssh_host_dsa_key -o \ + ! -f ${ETCDIR}/ssh/ssh_host_rsa_key ]; then user_reseed run_rc_command keygen fi --- sshd.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: