[Checkins] SVN: zc.buildoutsftp/branches/dev/ Try to read user name from ~/.ssh/config.

Jim Fulton jim at zope.com
Thu Dec 6 13:52:32 EST 2007


Log message for revision 82168:
  Try to read user name from ~/.ssh/config.
  

Changed:
  U   zc.buildoutsftp/branches/dev/README.txt
  U   zc.buildoutsftp/branches/dev/setup.py
  U   zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py

-=-
Modified: zc.buildoutsftp/branches/dev/README.txt
===================================================================
--- zc.buildoutsftp/branches/dev/README.txt	2007-12-06 18:00:59 UTC (rev 82167)
+++ zc.buildoutsftp/branches/dev/README.txt	2007-12-06 18:52:32 UTC (rev 82168)
@@ -60,6 +60,11 @@
 testing. I'm still trying to figure out how to write automated tests
 for this.
 
+0.4.0 (2007/12/6)
+-----------------
+
+Now reads user definitions from ~/.ssh/config, if possible.
+
 0.3.2 (2007/03/22)
 ------------------
 

Modified: zc.buildoutsftp/branches/dev/setup.py
===================================================================
--- zc.buildoutsftp/branches/dev/setup.py	2007-12-06 18:00:59 UTC (rev 82167)
+++ zc.buildoutsftp/branches/dev/setup.py	2007-12-06 18:52:32 UTC (rev 82168)
@@ -3,7 +3,7 @@
 name='zc.buildoutsftp'
 setup(
     name=name,
-    version = "0.3.2",
+    version = "0.4.0",
     author = "Jim Fulton",
     author_email = "jim at zope.com",
     description = "Specialized zc.buildout plugin to add sftp support.",

Modified: zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py
===================================================================
--- zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py	2007-12-06 18:00:59 UTC (rev 82167)
+++ zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py	2007-12-06 18:52:32 UTC (rev 82168)
@@ -87,10 +87,17 @@
             
         user, pw, host, port = parsed.groups()
 
+        host = urllib.unquote(host or '')
+
         if user:
             user = urllib.unquote(user)
         else:
             user = getpass.getuser()
+            config_path = os.path.expanduser('~/.ssh/config')
+            if os.path.exists(config_path):
+                config = paramiko.SSHConfig()
+                config.parse(open(config_path))
+                user = config.lookup(host).get('user', user)
 
         if port:
             port = int(port)
@@ -100,7 +107,6 @@
         if pw:
             pw = urllib.unquote(pw)
 
-        host = urllib.unquote(host or '')
 
         host_keys = _get_hosts_keys().get(host)
         if host_keys is None:



More information about the Checkins mailing list