|
940 | 940 | done
|
941 | 941 | fi
|
942 | 942 |
|
943 |
| - if [ ! "${SHA1SUMBINARY}" = "" -o ! "${OPENSSLBINARY}" = "" -o ! "${CSUMBINARY}" = "" ]; then |
| 943 | + if [ ! "${SHA1SUMBINARY}" = "" -o ! "${SHA256SUMBINARY}" = "" -o ! "${OPENSSLBINARY}" = "" -o ! "${CSUMBINARY}" = "" ]; then |
944 | 944 | LogText "Info: found hashing tool, start generation of HostID"
|
945 | 945 | case "${OS}" in
|
946 | 946 |
|
|
1068 | 1068 | # Check if we found a MAC address to generate the HostID
|
1069 | 1069 | if HasData "${FIND}"; then
|
1070 | 1070 | LogText "Info: using hardware address '${FIND}' to create HostID"
|
1071 |
| - HOSTID=$(echo ${FIND} | ${SHA1SUMBINARY} | awk '{ print $1 }') |
| 1071 | + if [ -n "${SHA1SUMBINARY}" ]; then |
| 1072 | + HOSTID=$(echo ${FIND} | ${SHA1SUMBINARY} | awk '{ print $1 }') |
| 1073 | + elif [ -n "${SHA256SUMBINARY}" ]; then |
| 1074 | + # Truncate hash to match SHA1 length |
| 1075 | + HOSTID=$(echo ${FIND} | ${SHA256SUMBINARY} | awk '{ print $1 }' | head -c 40) |
| 1076 | + fi |
1072 | 1077 | LogText "Result: Found HostID: ${HOSTID}"
|
1073 | 1078 | else
|
1074 | 1079 | ReportException "GetHostID" "HostID could not be generated"
|
|
1155 | 1160 | fi
|
1156 | 1161 |
|
1157 | 1162 | else
|
1158 |
| - ReportException "GetHostID" "Can't create HOSTID as there is no SHA1 hash tool available (sha1, sha1sum, openssl)" |
| 1163 | + ReportException "GetHostID" "Can't create HOSTID as there is no hash tool available (sha1, sha1sum, openssl, truncated sha256sum)" |
1159 | 1164 | fi
|
1160 | 1165 |
|
1161 | 1166 | # Search machine ID
|
|
1198 | 1203 | LogText "Info: start generation of HostID (version 2)"
|
1199 | 1204 | FOUND=0
|
1200 | 1205 | DATA_SSH=""
|
1201 |
| - # Use public keys |
1202 |
| - SSH_KEY_FILES="ssh_host_ed25519_key.pub ssh_host_ecdsa_key.pub ssh_host_dsa_key.pub ssh_host_rsa_key.pub" |
1203 | 1206 | if [ -d /etc/ssh ]; then
|
1204 |
| - for I in ${SSH_KEY_FILES}; do |
| 1207 | + SSH_PUBKEY_FILES="ssh_host_ed25519_key.pub ssh_host_ecdsa_key.pub ssh_host_dsa_key.pub ssh_host_rsa_key.pub" |
| 1208 | + for I in ${SSH_PUBKEY_FILES}; do |
1205 | 1209 | if [ ${FOUND} -eq 0 ]; then
|
1206 | 1210 | if [ -f /etc/ssh/${I} ]; then
|
1207 | 1211 | LogText "Result: found file ${I} in /etc/ssh, using that as candidate to create hostid2"
|
|
1210 | 1214 | fi
|
1211 | 1215 | fi
|
1212 | 1216 | done
|
| 1217 | + elif [ -d /etc/dropbear ]; then |
| 1218 | + SSH_KEY_FILES="dropbear_ed25519_host_key dropbear_rsa_host_key" |
| 1219 | + for I in ${SSH_KEY_FILES}; do |
| 1220 | + if [ ${FOUND} -eq 0 ]; then |
| 1221 | + if [ -f "/etc/dropbear/${I}" ]; then |
| 1222 | + LogText "Result: found file ${I} in /etc/dropbear, using that as candidate to create hostid2" |
| 1223 | + # Dropbear stores both keys in one binary file |
| 1224 | + DATA_SSH=$(dropbearkey -y -f "/etc/dropbear/${I}" | grep '^ssh') |
| 1225 | + FOUND=1 |
| 1226 | + fi |
| 1227 | + fi |
| 1228 | + done |
1213 | 1229 | else
|
1214 |
| - LogText "Result: no /etc/ssh directory found, skipping" |
| 1230 | + LogText "Result: no /etc/ssh nor /etc/dropbear directory found, skipping" |
1215 | 1231 | fi
|
1216 | 1232 |
|
1217 | 1233 | STRING_TO_HASH=""
|
|
0 commit comments