2009-08-03 11:39:39 +00:00
|
|
|
#!/bin/bash
|
2007-10-26 22:44:33 +00:00
|
|
|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
#egan@us.ibm.com
|
|
|
|
#(C)IBM Corp
|
|
|
|
#
|
2009-02-11 13:30:21 +00:00
|
|
|
# For Linux only
|
2007-10-26 22:44:33 +00:00
|
|
|
|
2008-02-05 01:16:40 +00:00
|
|
|
if [ -r /etc/ssh/sshd_config ]
|
|
|
|
then
|
|
|
|
logger -t xcat "Install: setup /etc/ssh/sshd_config"
|
|
|
|
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIG
|
2008-05-07 19:11:13 +00:00
|
|
|
sed -i 's/^X11Forwarding .*$/X11Forwarding yes/' /etc/ssh/sshd_config
|
|
|
|
sed -i 's/^KeyRegenerationInterval .*$/KeyRegenerationInterval 0/' /etc/ssh/sshd_config
|
|
|
|
sed -i 's/\(.*MaxStartups.*\)/#\1/' /etc/ssh/sshd_config
|
2008-02-05 01:16:40 +00:00
|
|
|
echo "MaxStartups 1024" >>/etc/ssh/sshd_config
|
2009-04-30 14:54:59 +00:00
|
|
|
#echo "PasswordAuthentication no" >>/etc/ssh/sshd_config
|
2008-02-05 01:16:40 +00:00
|
|
|
fi
|
2007-10-26 22:44:33 +00:00
|
|
|
|
2008-04-16 20:30:54 +00:00
|
|
|
if [ -r /etc/ssh/sshd_config ]
|
|
|
|
then
|
|
|
|
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config
|
|
|
|
fi
|
|
|
|
|
2008-04-30 20:54:57 +00:00
|
|
|
if [ -d /xcatpost/_ssh ]
|
2008-02-05 01:16:40 +00:00
|
|
|
then
|
|
|
|
logger -t xcat "Install: setup root .ssh"
|
2008-04-30 20:54:57 +00:00
|
|
|
cd /xcatpost/_ssh
|
2008-02-05 01:16:40 +00:00
|
|
|
mkdir -p /root/.ssh
|
|
|
|
cp -f * /root/.ssh
|
2008-05-07 17:14:46 +00:00
|
|
|
cd - >/dev/null
|
2008-02-05 01:16:40 +00:00
|
|
|
chmod 700 /root/.ssh
|
|
|
|
chmod 600 /root/.ssh/*
|
|
|
|
fi
|
2008-04-30 20:54:57 +00:00
|
|
|
|
2008-05-05 20:04:06 +00:00
|
|
|
#if [ -d /xcatpost/hostkeys ]
|
|
|
|
#then
|
|
|
|
# logger -t xcat "Install: using server provided host key for convenience."
|
|
|
|
# cp /xcatpost/hostkeys/*_key /etc/ssh/
|
|
|
|
#fi
|
2009-06-25 19:18:22 +00:00
|
|
|
if [ ! -x /usr/bin/openssl ]; then
|
2010-04-06 08:17:04 +00:00
|
|
|
logger -t xcat "Install: /usr/bin/openssl is not executable."
|
2009-06-25 19:18:22 +00:00
|
|
|
exit 0
|
2008-05-01 14:45:30 +00:00
|
|
|
fi
|
|
|
|
allowcred.awk &
|
|
|
|
CREDPID=$!
|
|
|
|
sleep 1
|
2009-05-12 12:18:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
getcredentials.awk ssh_dsa_hostkey | grep -E -v '</{0,1}xcatresponse>|</{0,1}serverdone>' | sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /tmp/ssh_dsa_hostkey
|
|
|
|
|
|
|
|
#check the message is an error or not
|
|
|
|
grep -E '<error>' /tmp/ssh_dsa_hostkey
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
#the message received is the data
|
|
|
|
cat /tmp/ssh_dsa_hostkey | grep -E -v '</{0,1}data>|</{0,1}content>|</{0,1}desc>' >/etc/ssh/ssh_host_dsa_key
|
|
|
|
logger -t xCAT ssh_dsa_hostkey
|
|
|
|
MYCONT=`cat /etc/ssh/ssh_host_dsa_key`
|
|
|
|
while [ -z "$MYCONT" ]; do
|
|
|
|
let SLI=$RANDOM%10
|
|
|
|
let SLI=SLI+10
|
|
|
|
sleep $SLI
|
|
|
|
getcredentials.awk ssh_dsa_hostkey | grep -v '<'|sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /etc/ssh/ssh_host_dsa_key
|
|
|
|
MYCONT=`cat /etc/ssh/ssh_host_dsa_key`
|
|
|
|
done
|
|
|
|
chmod 600 /etc/ssh/ssh_host_dsa_key
|
|
|
|
if ! grep "PRIVATE KEY" /etc/ssh/ssh_host_dsa_key > /dev/null 2>&1 ; then
|
|
|
|
rm /etc/ssh/ssh_host_dsa_key
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
#the message received is an error, so parse it
|
|
|
|
ERR_MSG=`sed -n 's%.*<error>\(.*\)</error>.*%\1%p' /tmp/ssh_dsa_hostkey`
|
|
|
|
logger -t xCAT Error: $ERR_MSG
|
2009-05-11 15:47:34 +00:00
|
|
|
fi
|
2009-05-12 12:18:12 +00:00
|
|
|
rm /tmp/ssh_dsa_hostkey
|
2007-10-26 22:44:33 +00:00
|
|
|
|
2009-05-12 12:18:12 +00:00
|
|
|
getcredentials.awk ssh_rsa_hostkey | grep -E -v '</{0,1}xcatresponse>|</{0,1}serverdone>' | sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /tmp/ssh_rsa_hostkey
|
|
|
|
|
|
|
|
#check whether the message is an error or not
|
|
|
|
grep -E '<error>' /tmp/ssh_rsa_hostkey
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
#the message received is the data we request
|
|
|
|
cat /tmp/ssh_rsa_hostkey | grep -E -v '</{0,1}data>|</{0,1}content>|</{0,1}desc>' >/etc/ssh/ssh_host_rsa_key
|
|
|
|
logger -t xCAT ssh_rsa_hostkey
|
|
|
|
MYCONT=`cat /etc/ssh/ssh_host_rsa_key`
|
|
|
|
while [ -z "$MYCONT" ]; do
|
|
|
|
let SLI=$RANDOM%10
|
|
|
|
let SLI=SLI+10
|
|
|
|
sleep $SLI
|
|
|
|
getcredentials.awk ssh_rsa_hostkey | grep -v '<'|sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /etc/ssh/ssh_host_rsa_key
|
|
|
|
MYCONT=`cat /etc/ssh/ssh_host_rsa_key`
|
|
|
|
done
|
|
|
|
chmod 600 /etc/ssh/ssh_host_rsa_key
|
|
|
|
if ! grep "PRIVATE KEY" /etc/ssh/ssh_host_rsa_key > /dev/null 2>&1 ; then
|
|
|
|
rm /etc/ssh/ssh_host_rsa_key
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
#This is an error message
|
|
|
|
ERR_MSG=`sed -n 's%.*<error>\(.*\)</error>.*%\1%p' /tmp/ssh_rsa_hostkey`
|
|
|
|
logger -t xCAT Error: $ERR_MSG
|
|
|
|
fi
|
|
|
|
rm /tmp/ssh_rsa_hostkey
|
2008-02-05 01:16:40 +00:00
|
|
|
|
2009-02-12 13:46:13 +00:00
|
|
|
if [ -r /etc/xCATSN ] ; then
|
2010-03-24 12:05:58 +00:00
|
|
|
mkdir -p /etc/xcat/hostkeys
|
2009-02-12 13:46:13 +00:00
|
|
|
cp /etc/ssh/ssh* /etc/xcat/hostkeys/.
|
|
|
|
fi
|
2008-04-16 21:08:57 +00:00
|
|
|
|
2007-10-26 22:44:33 +00:00
|
|
|
|
2008-04-16 21:08:57 +00:00
|
|
|
umask 0077
|
|
|
|
|
|
|
|
mkdir -p /root/.ssh/
|
2008-04-29 13:57:57 +00:00
|
|
|
sleep 1
|
2010-11-01 19:12:36 +00:00
|
|
|
if [ $ENABLESSHBETWEENNODES = "YES" ];
|
|
|
|
then
|
|
|
|
getcredentials.awk ssh_root_key | grep -E -v '</{0,1}xcatresponse>|</{0,1}serverdone>'|sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /tmp/ssh_root_key
|
2009-05-12 12:18:12 +00:00
|
|
|
|
2010-11-01 19:12:36 +00:00
|
|
|
#check whether the message is an error or not
|
|
|
|
grep -E '<error>' /tmp/ssh_root_key
|
|
|
|
if [ $? -ne 0 ]; then
|
2009-05-12 12:18:12 +00:00
|
|
|
#The message contains the data we request
|
|
|
|
cat /tmp/ssh_root_key | grep -E -v '</{0,1}data>|</{0,1}content>|</{0,1}desc>' > /root/.ssh/id_rsa
|
|
|
|
logger -t xCAT ssh_root_key
|
|
|
|
MYCONT=`cat /root/.ssh/id_rsa`
|
|
|
|
while [ -z "$MYCONT" ]; do
|
|
|
|
let SLI=$RANDOM%10
|
|
|
|
let SLI=SLI+10
|
|
|
|
sleep $SLI
|
|
|
|
getcredentials.awk ssh_root_key | grep -v '<'|sed -e 's/</</' -e 's/>/>/' -e 's/&/&/' -e 's/"/"/' -e "s/'/'/" > /root/.ssh/id_rsa
|
|
|
|
MYCONT=`cat /root/.ssh/id_rsa`
|
|
|
|
done
|
2010-11-01 19:12:36 +00:00
|
|
|
else
|
2009-05-12 12:18:12 +00:00
|
|
|
#This is an error message
|
|
|
|
ERR_MSG=`sed -n 's%.*<error>\(.*\)</error>.*%\1%p' /tmp/ssh_root_key`
|
|
|
|
logger -t xCAT ssh_root_key Error: $ERR_MSG
|
2010-11-01 19:12:36 +00:00
|
|
|
fi
|
|
|
|
rm /tmp/ssh_root_key
|
|
|
|
|
|
|
|
if ! grep "PRIVATE KEY" /root/.ssh/id_rsa > /dev/null 2>&1 ; then
|
|
|
|
rm /root/.ssh/id_rsa
|
|
|
|
fi
|
|
|
|
if [ -r /root/.ssh/id_rsa ]; then
|
|
|
|
ssh-keygen -y -f /root/.ssh/id_rsa > /root/.ssh/id_rsa.pub
|
|
|
|
fi
|
2008-05-05 14:39:07 +00:00
|
|
|
fi
|
2009-06-04 15:33:44 +00:00
|
|
|
|
|
|
|
# start up the sshd for syncfiles postscript to do the sync work
|
2010-04-06 08:17:04 +00:00
|
|
|
logger -t xCAT "start up sshd"
|
2009-06-04 15:33:44 +00:00
|
|
|
service sshd start
|
|
|
|
|
2008-05-01 14:45:30 +00:00
|
|
|
kill -9 $CREDPID
|