home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / sbin / inst_setup_ssh < prev    next >
Text File  |  2006-11-29  |  3KB  |  107 lines

  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. if grep -qwi nosshkey < /proc/cmdline ; then
  19. nosshkey=true
  20. fi
  21.  
  22. #
  23. if ! test -z "$1" ; then
  24.     sshpassword=$1
  25. fi
  26.  
  27. echo 'sshd found, prepare remote login'
  28. if test -L /root ; then rm -f /root ; fi
  29. if test -L /etc/ssh ; then rm -f /etc/ssh ; fi
  30. mkdir -p /etc/ssh /root
  31. cp -a --remove-destination $INSTSYS/root/.bash_login /root
  32. cp -a --remove-destination $INSTSYS/root/.bash_history /root
  33. cp -a --remove-destination $INSTSYS/root/.vimrc /root
  34. cp -a --remove-destination $INSTSYS/etc/ssh/{moduli,primes,ssh*config*} /etc/ssh
  35. # not needed in initrd
  36. grep -vi UsePrivilegeSeparation < $INSTSYS/etc/ssh/sshd_config > /etc/ssh/sshd_config
  37. echo UsePrivilegeSeparation no >> /etc/ssh/sshd_config
  38. #
  39. if test ! -z "$nameserver" ; then
  40.      echo "nameserver $nameserver" >> /etc/resolv.conf
  41. fi
  42. if test ! -z "$domain" ; then
  43.     echo "search $domain" >> /etc/resolv.conf
  44. fi
  45. mkdir -p /dev/pts
  46. mkdir -p /dev/shm
  47. grep -q devpts /proc/mounts || \
  48. mount -n -t devpts -o mode=0620,gid=5 devpts /dev/pts
  49. #
  50. if [ "$nosshkey" = "true" ] ; then
  51.     # for inst-sys testing
  52.     echo using built-in ssh keys
  53.     cp -a --remove-destination $INSTSYS/etc/ssh/*key* /etc/ssh/
  54.  
  55. else
  56.     #
  57.     echo "generating SSH keys  ...  "
  58.     #
  59.     if ! test -f /etc/ssh/ssh_host_key ; then
  60.         echo Generating /etc/ssh/ssh_host_key.
  61.         ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N ''
  62.     fi
  63.     if ! test -f /etc/ssh/ssh_host_dsa_key ; then
  64.         echo Generating /etc/ssh/ssh_host_dsa_key.
  65.  
  66.         ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N ''
  67.     fi
  68.     if ! test -f /etc/ssh/ssh_host_rsa_key ; then
  69.         echo Generating /etc/ssh/ssh_host_rsa_key.
  70.  
  71.         ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -N ''
  72.     fi
  73. fi
  74. if [ ! -z "$sshpassword" ] ; then
  75.     mv -f /etc/passwd /etc/passwd.
  76.     mv -f /etc/shadow /etc/shadow.
  77.     cat /etc/passwd. > /etc/passwd
  78.     cat /etc/shadow. > /etc/shadow
  79.     echo "setting root pwd to '$sshpassword'"
  80.     echo "root:$sshpassword" | chpasswd
  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.     ip -oneline -family inet link show up | \
  94.     sed -n '/link\/\(ether\|ieee1394\|tr\)/s@^[^ ]\+[ ]\+\([^:]\+\).*@\1@p' | \
  95.     xargs --no-run-if-empty -n1 ip addr show dev | \
  96.     sed 's@^[0-9]\+: *@@'
  97.     export YAST2_SSH=true
  98.     cat <<EOF
  99.  
  100.       ***  sshd has been started  ***
  101.  
  102. EOF
  103. fi
  104.  
  105. [ -f /proc/splash ] && echo verbose >/proc/splash
  106.  
  107.