Add NEPI_STRICT_AUTH_MODE, when not enabled, it takes user-configured host SSH keys.
authorClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Mon, 2 May 2011 09:29:57 +0000 (11:29 +0200)
committerClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Mon, 2 May 2011 09:29:57 +0000 (11:29 +0200)
When enabled, it will only use PLC-supplied host keys (more secure)

src/nepi/util/server.py

index 199a009..a8aee5f 100644 (file)
@@ -353,8 +353,20 @@ def _make_server_key_args(server_key, host, port, args):
         host = '%s:%s' % (host,port)
     # Create a temporary server key file
     tmp_known_hosts = tempfile.NamedTemporaryFile()
+    
+    # Add the intended host key
     tmp_known_hosts.write('%s,%s %s\n' % (host, socket.gethostbyname(host), server_key))
+    
+    # If we're not in strict mode, add user-configured keys
+    if os.environ.get('NEPI_STRICT_AUTH_MODE',"").lower() not in ('1','true','on'):
+        user_hosts_path = '%s/.ssh/known_hosts' % (os.environ.get('HOME',""),)
+        if os.access(user_hosts_path, os.R_OK):
+            f = open(user_hosts_path, "r")
+            tmp_known_hosts.write(f.read())
+            f.close()
+        
     tmp_known_hosts.flush()
+    
     args.extend(['-o', 'UserKnownHostsFile=%s' % (tmp_known_hosts.name,)])
     return tmp_known_hosts