This commit was manufactured by cvs2svn to create tag
[opensuse:installation-images.git] / data / root / etc / inst_setup_ssh
1 # will be sourced by /sbin/inst_setup
2
3 # vim: syntax=sh
4 if [ -z "$INSTSYS" ] ; then
5         echo "variable INSTSYS not set"
6         sleep 1
7         exit 1
8 fi
9
10 #
11
12 nosshkey=false
13 if [ "$1" = "-n" ] ; then
14 nosshkey=true
15 shift
16 fi
17
18 #
19
20 echo 'sshd found, prepare remote login'
21 test -L /etc/ssh && { rm -f /etc/ssh ; mkdir -p /etc/ssh ; }
22 test -L /root && rm -f /root
23 mkdir -p /root
24 cp -a $INSTSYS/root/.bash_login /root
25 cp -a $INSTSYS/root/.bash_history /root
26 cp -a $INSTSYS/root/.vimrc /root
27 cp -a $INSTSYS/etc/ssh/{moduli,primes,ssh*config*} /etc
28 # not needed in initrd
29 grep -vi UsePrivilegeSeparation < $INSTSYS/etc/ssh/sshd_config > /etc/ssh/sshd_config
30 echo UsePrivilegeSeparation no >> /etc/ssh/sshd_config
31 #
32 test -z "$nameserver" || echo "nameserver $nameserver" > /etc/resolv.conf
33 test -z "$domain" || echo "search $domain" >> /etc/resolv.conf
34 mkdir -p /dev/pts
35 mkdir -p /dev/shm
36 grep -q devpts /proc/mounts || \
37 mount -n -t devpts -o mode=0620,gid=5 devpts /dev/pts
38 #
39 if [ "$(hostname)" = "(none)" ] ; then
40 THIS_HOST_IP=$(awk ' /^IP:/ { print $2 }' < /etc/install.inf)
41 test -z "$THIS_HOST_IP" || hostname $THIS_HOST_IP
42 test -z "$domain" || domainname $domain
43 fi
44 #
45 if grep -qwi nosshkey < /proc/cmdline ; then
46 nosshkey=true
47 fi
48
49 #
50 if [ "$nosshkey" = "true" ] ; then
51         # for inst-sys testing
52         cp -av $INSTSYS/etc/ssh/*key* /etc/ssh/
53         # if shadow is a symlink then usessh was probably off
54         # now you can just run this script and login and debug that thing..
55         test -L /etc/shadow -a -L /etc/passwd -a ! -z "$1" && {
56         mv -v /etc/passwd /etc/passwd.
57         mv -v /etc/shadow /etc/shadow.
58         cat /etc/passwd. > /etc/passwd
59         cat /etc/shadow. > /etc/shadow
60         echo "setting root pwd to $1"
61         echo root:$1 | chpasswd
62         }
63 else
64         #
65         echo "generating SSH keys  ...  "
66         #
67         if ! test -f /etc/ssh/ssh_host_key ; then
68             echo Generating /etc/ssh/ssh_host_key.
69             ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N ''
70         fi
71         if ! test -f /etc/ssh/ssh_host_dsa_key ; then
72             echo Generating /etc/ssh/ssh_host_dsa_key.
73
74             ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N ''
75         fi
76         if ! test -f /etc/ssh/ssh_host_rsa_key ; then
77             echo Generating /etc/ssh/ssh_host_rsa_key.
78
79             ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -N ''
80         fi
81 fi
82 chmod -R og-rxw  /etc/ssh /root /etc/shadow 2>/dev/null
83 chown -R 0.0  /etc/ssh /root /etc/shadow 2>/dev/null
84 echo "Starting SSH daemon  ...  "
85 #
86 /usr/sbin/sshd || {
87 export SSH_FAILED=true
88 export YAST2_SSH=false
89 echo 'sshd did NOT start!'
90 }
91 if [ ! "$SSH_FAILED" ] ; then
92         echo
93         echo /sbin/ifconfig `grep eth /proc/net/dev | cut -f 1 -d : `
94         for i in  `grep eth /proc/net/dev | cut -f 1 -d : ` ; do
95             /sbin/ifconfig $i | grep UP > /dev/null 2>&1 && /sbin/ifconfig $i | head -n 2
96         done
97         export YAST2_SSH=true
98         cat <<EOF
99
100       ***  sshd has been started  ***
101
102 EOF
103 fi
104