Документация vsftpd неплохая (https://security.appspot.com/vsftpd/vsftpd_conf.html), однако я не могу найти подробностей о том, как использовать аутентификацию с открытым ключом. Я знаю, что мне нужны require_cert и, возможно, validate_cert, но где мне разместить общедоступные клиентские ключи, которые принимаются для аутентификации? Я не могу найти информацию об этом.
vsftpd предназначен для FTP, FTP по своей природе не зашифрован (ftp over ssl - другое дело)
Вы не можете настроить аутентификацию с открытым ключом с помощью vsftpd - вы путаетесь между FTP и SFTP, которые являются двумя разными протоколами.
Чтобы использовать аутентификацию с открытым ключом для SFTP, достаточно установить ваш открытый ключ на сервере, как и для ssh, как подробно описано здесь - http://www.noah.org/wiki/SSH_public_keys
В этой конфигурации вы можете использовать реализацию SFTP-аутентификации OpenSSH.
Если вы говорите о настройке FTP или FTP через SSL, то это руководство будет полезно - http://wiki.vpslink.com/Configuring_vsftpd_for_secure_connections_%28TLS/SSL/SFTP%29
Этот пример, однако, не является аутентификацией с открытым ключом, это просто аутентификация на стороне сервера и полезна для шифрования вашего FTP-соединения.