Magellan Linux

Annotation of /alx-src/tags/alxconf-0_6_4_5/functions/config_ssh_auth.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1973 - (hide annotations) (download) (as text)
Sat May 7 11:02:49 2011 UTC (13 years ago) by niro
Original Path: alx-src/branches/alxconf-060/functions/config_ssh_auth.sh
File MIME type: application/x-sh
File size: 1398 byte(s)
-support dropbear and dropped openssh
1 niro 1973 # $Id$
2 niro 253 # exchanges the public server and client ssh keys
3    
4 niro 342 gen_keys()
5     {
6 niro 1973 if [ ! -e /etc/dropbear/dropbear_dss_host_key ]
7 niro 253 then
8 niro 1973 echo -e ${COLOREDSTAR}"Generating DSS-Hostkey ..."
9     dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
10 niro 253 fi
11    
12 niro 1973 if [ ! -e /etc/dropbear/dropbear_rsa_host_key ]
13 niro 253 then
14 niro 1973 echo -e ${COLREDSTAR}"Generating RSA-Hostkey ..."
15     dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
16 niro 253 fi
17     }
18    
19 niro 342 config_ssh_auth()
20     {
21 niro 254 local PUB_KEY_SERVER
22     local ID
23 niro 1973 local pubkey
24 niro 254
25 niro 253 # generate evtually missing keys
26     gen_keys
27    
28 niro 1973 # read the pubkey (the sed prints only the second line, which is the pubkey)
29     pubkey="$(dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key | sed -n '2p')"
30    
31 niro 253 # write the public key of the server to the host system
32 niro 342 PUB_KEY_SERVER="$(mysqldo "select public_key from ssh_auth_server where id=1;")"
33 niro 253
34     if [ -n "${PUB_KEY_SERVER}" ]
35     then
36 niro 330 HOME=/root
37 niro 253 # only if not empty
38     [ ! -d $HOME/.ssh ] && install -d $HOME/.ssh
39     echo "${PUB_KEY_SERVER}" > $HOME/.ssh/authorized_keys
40     fi
41    
42     # put the public key of the host into the db
43 niro 342 ID=$(mysqldo "select serial from ssh_auth_clients where serial=${ALX_SERIAL};")
44 niro 253
45     if [ -n "${ID}" ]
46     then
47 niro 342 # run an update
48 niro 1973 mysqldo "update ssh_auth_clients set public_key='${pubkey}' where serial=${ALX_SERIAL};"
49 niro 253 else
50 niro 342 # run an insert
51 niro 1973 mysqldo "insert into ssh_auth_clients(serial,public_key) values('${ALX_SERIAL}','${pubkey}')"
52 niro 253 fi
53     }