docs: def upload_ssh_key(rollback=False):
      """
      Upload your ssh key for passwordless logins
      """
      auth_keys = '/home/%s/.ssh/authorized_keys'% env.user
      if not rollback:
          local_user = getpass.getuser()
          host = socket.gethostname()
          u = '@'.join([local_user,host])
          u = 'ssh-key-uploaded-%s'% u
          if not env.overwrite and server_state(u): return
          if not exists('.ssh'):
              run('mkdir .ssh')
             
          #determine local .ssh dir
          home = os.path.expanduser('~')
          ssh_key = None
          upload_key = True
          ssh_dsa = os.path.join(home,'.ssh/id_dsa.pub')
          ssh_rsa =  os.path.join(home,'.ssh/id_rsa.pub')
          if env.key_filename and env.INTERACTIVE:
                  upload_key = confirm('Would you like to upload your personal key in addition to %s'% str(env.key_filename), default=True)
          if upload_key:  
              if os.path.exists(ssh_dsa):
                  ssh_key = ssh_dsa
              elif os.path.exists(ssh_rsa):
                  ssh_key = ssh_rsa
      
          if ssh_key:
              ssh_file = open(ssh_key,'r').read()
              
              if exists(auth_keys):
                  _backup_file(auth_keys)
              if env.verbosity:
                  print env.host, "UPLOADING SSH KEY"
              append(auth_keys,ssh_file) #append prevents uploading twice
              set_server_state(u)
          return
      else:
          if exists(auth_keys+'.wovenbak'):
              _restore_file('/home/%s/.ssh/authorized_keys'% env.user)
          else: #no pre-existing keys remove the .ssh directory
              sudo('rm -rf /home/%s/.ssh')
          return