Hi All,

We're having problems setting up ftp and authenticating against the postgres 

We've reviewed these pages and a few others:
Galaxy Page:

Peter Briggs Blog Post:

Ricardo Perez's Galaxy Developers thread that Peter referenced:

When we run proftpd in debug mode we get similar output to the one in Ricardo's 

Ricardo's command line output:
login002 proftpd[987] login002 ([]): 
mod_sql_passwd/0.4: expected 
'PBKDF2$sha256$10000$8h/4HmD1Eu6NTc7F$Slb1H5a9YJvR6A3cUnZCUfh7tOWKfRuh', got 

Our output:
2016-04-20 10:53:42,597 pcegalaxy proftpd[18649] pcegalaxy.ci.northwestern.edu 
(lagunitas.kelleher.northwestern.edu[]): mod_sql_passwd/0.7: 
expected 'NMmACzgvs8Oh+BCnSw+2GFxpYl7cLiQu', got 

>From looking at the galaxy_user table, it seems like proftpd is finding the 
>correct password information (password in table: 

The last post from that thread mentions back-channel advice that was helpful. 
Maybe we need the same advice ?

In case it's important we're using LDAP for our general user authentication.

Here is our proftpd.conf:
ServerName                                                        "Galaxy FTP 
File Upload"
ServerType                                                          standalone
DefaultServer                                                     on

# Port 21 is the standard FTP port.
Port                                                                         21

# Don't use IPv6 support by default.
UseIPv6                                                                 off

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                                                                   077

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances                                                     30

# Set the user and group under which the server will run.
Group                                                                    nobody

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Automatically create home directory if it doesn't exist
CreateHome                      on dirmode 700

# Allow users to overwrite their files
AllowOverwrite                  on

# Allow users to resume interrupted uploads
AllowStoreRestart               on

# Bar use of SITE CHMOD by default

# Bar use of RETR (download) since this is not a public file drop
<Limit RETR>

# Do not authenticate against real (system) users
AuthPAM                         off

## Set up mod_sql_password - Galaxy passwords are stored as hex-encoded SHA1
SQLPasswordEngine               on

## Set this if Galaxy user UID and/or GID are less than 999
SQLMinID                                         400

## Configuration that handles PBKDF2 encryption
## Set up mod_sql to authenticate against the Galaxy database
SQLEngine                                        on
SQLBackend                                    postgres

SQLConnectInfo                            galaxy_db@localhost:5432 <USERNAME> 
SQLAuthTypes                              PBKDF2
SQLPasswordPBKDF2                  SHA256 10000 24
SQLPasswordEncoding               base64
SQLAuthenticate                           users

## For PBKDF2 authentication
SQLPasswordUserSalt sql:/GetUserSalt

## Define a custom query for lookup that returns a passwd-like entry for PBKFD2
##  UID and GID should match your Galaxy user.
SQLUserInfo                                   custom:/LookupGalaxyUser
SQLNamedQuery                         LookupGalaxyUser SELECT "email, (CASE 
WHEN substring(password from 1 for 6) = 'PBKDF2' THEN substring(password from 
38 for 69) ELSE password END) AS 
password2,400,400,'/share/PCEitAdmin/Galaxy/external_users/%U','/bin/bash' FROM 
galaxy_user WHERE email='%U'"

## Define custom query to fetch the password salt
SQLNamedQuery GetUserSalt SELECT "(CASE WHEN SUBSTRING (password from 1 for 6) 
= 'PBKDF2' THEN SUBSTRING (password from 21 for 16) END) AS salt FROM 
galaxy_user WHERE email='%U'"

Any advice would be great.


Joe Greer
Northwestern University

Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:

To search Galaxy mailing lists use the unified search at:

Reply via email to