4
4
# --- BEGIN_HEADER ---
5
5
#
6
6
# install - MiG server install helpers
7
- # Copyright (C) 2003-2024 The MiG Project lead by Brian Vinter
7
+ # Copyright (C) 2003-2025 The MiG Project by the Science HPC Center at UCPH
8
8
#
9
9
# This file is part of MiG.
10
10
#
@@ -412,7 +412,10 @@ def generate_confs(
412
412
ext_oidc_rewrite_cookie = '' ,
413
413
dhparams_path = '' ,
414
414
daemon_keycert = '' ,
415
+ daemon_keycert_sha256 = keyword_auto ,
415
416
daemon_pubkey = '' ,
417
+ daemon_pubkey_md5 = keyword_auto ,
418
+ daemon_pubkey_sha256 = keyword_auto ,
416
419
daemon_pubkey_from_dns = False ,
417
420
daemon_show_address = '' ,
418
421
alias_field = '' ,
@@ -730,7 +733,10 @@ def _generate_confs_prepare(
730
733
ext_oidc_rewrite_cookie ,
731
734
dhparams_path ,
732
735
daemon_keycert ,
736
+ daemon_keycert_sha256 ,
733
737
daemon_pubkey ,
738
+ daemon_pubkey_md5 ,
739
+ daemon_pubkey_sha256 ,
734
740
daemon_pubkey_from_dns ,
735
741
daemon_show_address ,
736
742
alias_field ,
@@ -999,9 +1005,9 @@ def _generate_confs_prepare(
999
1005
user_dict ['__DHPARAMS_PATH__' ] = dhparams_path
1000
1006
user_dict ['__DAEMON_KEYCERT__' ] = daemon_keycert
1001
1007
user_dict ['__DAEMON_PUBKEY__' ] = daemon_pubkey
1002
- user_dict ['__DAEMON_KEYCERT_SHA256__' ] = ''
1003
- user_dict ['__DAEMON_PUBKEY_MD5__' ] = ''
1004
- user_dict ['__DAEMON_PUBKEY_SHA256__' ] = ''
1008
+ user_dict ['__DAEMON_KEYCERT_SHA256__' ] = daemon_keycert_sha256
1009
+ user_dict ['__DAEMON_PUBKEY_MD5__' ] = daemon_pubkey_md5
1010
+ user_dict ['__DAEMON_PUBKEY_SHA256__' ] = daemon_pubkey_sha256
1005
1011
user_dict ['__DAEMON_PUBKEY_FROM_DNS__' ] = "%s" % daemon_pubkey_from_dns
1006
1012
user_dict ['__SFTP_PORT__' ] = "%s" % sftp_port
1007
1013
user_dict ['__SFTP_SUBSYS_PORT__' ] = "%s" % sftp_subsys_port
@@ -1925,15 +1931,19 @@ def _generate_confs_prepare(
1925
1931
openssl dhparam 2048 -out %(__DHPARAMS_PATH__)s""" % user_dict )
1926
1932
sys .exit (1 )
1927
1933
1928
- # Auto-fill fingerprints if daemon key is set
1934
+ # Auto-fill fingerprints if daemon key is set with AUTO fingerprint
1929
1935
if user_dict ['__DAEMON_KEYCERT__' ]:
1930
1936
if not os .path .isfile (os .path .expanduser ("%(__DAEMON_KEYCERT__)s" %
1931
1937
user_dict )):
1932
1938
print ("ERROR: requested daemon keycert file not found!" )
1933
- print ("""You can create it with:
1934
- openssl genrsa -out %(__DAEMON_KEYCERT__)s 2048 """ % user_dict )
1939
+ print ("""You can create it e.g. with:
1940
+ openssl genrsa -out %(__DAEMON_KEYCERT__)s 4096 """ % user_dict )
1935
1941
sys .exit (1 )
1942
+ else :
1943
+ user_dict ['__DAEMON_KEYCERT_SHA256__' ] = ''
1936
1944
1945
+ if user_dict ['__DAEMON_KEYCERT__' ] and keyword_auto in \
1946
+ (daemon_keycert_sha256 , ):
1937
1947
key_path = os .path .expanduser (user_dict ['__DAEMON_KEYCERT__' ])
1938
1948
openssl_cmd = ["openssl" , "x509" , "-noout" , "-fingerprint" , "-sha256" ,
1939
1949
"-in" , key_path ]
@@ -1948,15 +1958,21 @@ def _generate_confs_prepare(
1948
1958
print ("ERROR: failed to extract sha256 fingerprint of %s: %s" %
1949
1959
(key_path , exc ))
1950
1960
daemon_keycert_sha256 = ''
1951
- user_dict ['__DAEMON_KEYCERT_SHA256__' ] = daemon_keycert_sha256
1961
+ if daemon_keycert_sha256 == keyword_auto :
1962
+ user_dict ['__DAEMON_KEYCERT_SHA256__' ] = daemon_keycert_sha256
1952
1963
if user_dict ['__DAEMON_PUBKEY__' ]:
1953
1964
if not os .path .isfile (os .path .expanduser ("%(__DAEMON_PUBKEY__)s" %
1954
1965
user_dict )):
1955
1966
print ("ERROR: requested daemon pubkey file not found!" )
1956
1967
print ("""You can create it with:
1957
1968
ssh-keygen -f %(__DAEMON_KEYCERT__)s -y > %(__DAEMON_PUBKEY__)s""" % user_dict )
1958
1969
sys .exit (1 )
1970
+ else :
1971
+ user_dict ['__DAEMON_PUBKEY_MD5__' ] = ''
1972
+ user_dict ['__DAEMON_PUBKEY_SHA256__' ] = ''
1959
1973
1974
+ if user_dict ['__DAEMON_PUBKEY__' ] and keyword_auto in \
1975
+ (daemon_pubkey_md5 , daemon_pubkey_sha256 ):
1960
1976
pubkey_path = os .path .expanduser (user_dict ['__DAEMON_PUBKEY__' ])
1961
1977
pubkey = read_file (pubkey_path , None )
1962
1978
if pubkey is None :
@@ -1974,9 +1990,12 @@ def _generate_confs_prepare(
1974
1990
except Exception as exc :
1975
1991
print ("ERROR: failed to extract fingerprints of %s : %s" %
1976
1992
(pubkey_path , exc ))
1993
+ daemon_pubkey_md5 = ''
1977
1994
daemon_pubkey_sha256 = ''
1978
- user_dict ['__DAEMON_PUBKEY_MD5__' ] = daemon_pubkey_md5
1979
- user_dict ['__DAEMON_PUBKEY_SHA256__' ] = daemon_pubkey_sha256
1995
+ if daemon_pubkey_md5 == keyword_auto :
1996
+ user_dict ['__DAEMON_PUBKEY_MD5__' ] = daemon_pubkey_md5
1997
+ if daemon_pubkey_sha256 == keyword_auto :
1998
+ user_dict ['__DAEMON_PUBKEY_SHA256__' ] = daemon_pubkey_sha256
1980
1999
1981
2000
# Enable Debian/Ubuntu specific lines only there
1982
2001
if user_dict ['__DISTRO__' ].lower () in ('ubuntu' , 'debian' ):
0 commit comments