UNIX PAM Installation


Find out why our Two-Factor Authentication is the best, some key-facts for developers and why you should upgrade to SecSign for your business.

Learn more about the options of on-premise use and your own customized ID App in your corporate design.

Download the plugin as cloud version for a free and convenient protection.

The Pluggable Authentication Modules (PAM) is a software library which offers a general programming interface for authentication services. By using the PAM-API one does no longer need to define the settings for every single authentication application. Instead, individual standarized modules can be used.

The modules can be assigned to individual services in the configuration file. There is no need to change the compilation of the corresponding software. PAM is available for AIX, HP-UX, Solaris, Linux, FreeBSD, NetBSD, Mac OS X and DragonFly BSD.

Table of contents

    Start right now! Questions?

    Feel free to get in touch with us if you need help setting up your SecSign ID plugin or to request a plugin for a not yet supported environment.

    1. Areas of Application

    There are several areas of application for secure Two-Factor Authentication with the SecSign ID Pluggable Authentication Module.

    We offer the SecSign ID RADIUS Proxy for authentication services using the RADIUS Server and Active Directory. This way the SecSign IDs are requested from the Active Directory as compared to the configuration file.

    • SSH
    • FTP
    • Apache HTTP Auth
    • Desktop Logins

    2. Authentication Process

    The user provides, with an SSH connection for this example, his user name and password. He receives a push-notification to his smartphone within seconds, providing the service name and address of the service he wants to log in to. As soon as he confirms the request the SSH connection is established.

    That is everything there is to do for the user to enjoy truly secure Two-Factor Authentication and prevent access to the system even with leaked password information.

    That is how the authentication for the SSH example works:


    1. A SSH client opens the SSH connection to the server.
    2. The SSHd application accepts the request and in turn places an authentication request to the PAM library.
    3. The corresponding configuration file is reviewed for the correct PAMs. In the example it is asked for the user password, just like for SSH connections.
    4. In the second step the SecSign ID PAM is called.
    5. The SecSign ID PAM loads the configuration file and looks for the corresponding user’s SecSign ID.
    6. In the next step the SecSign ID Server is notified about the SecSign ID authentication request.
    7. The SecSign ID Server sends a push-notification to the user’s smartphone.
    8. The user can now accept the login on his smartphone.
    9. The PAM requests the authentication status from the SecSign ID Server. If the login is accepted that information is forwarded to the PAM.
    10. The SecSign ID PAM evaluates the server’s answer and determines if the authentication is valid. The PAM status is sent to the PAM library if the authentication is verified.
    11. The PAM library checks for additional authentication routines and forwards the authentication confirmation to the application, in this case SSHd.
    12. SSHd receives confirmation from the PAM about the valid authentication and establishes a SSH connection.

    3. Setup

    Download the SecSign ID PAM archive and unpack it. The library contains four files:

    • Makefile: Is used to compile the source library
    • libsecsinid.c: C library for the SecSign ID Two-Factor Authentication
    • libsecsinid.h: Corresponding header-file with type definitions and function prototypes
    • secsignid.c: PAM to use the SecSign ID
    • secsignid.config: Comfiguration file which combines user name and corresponding SecSign ID

    To compile and accurately render the program the following requirements must be met:

    • Unix Platform or Mac
    • gcc compiler
    • libcurl installed
    • libpam installed
    • Internet connection (the SecSignID server communicates via Port 443)

    The gcc compiler and libcurl can be installed with Debian:

    and with Ubuntu:

    The easiest way to install the compiler gcc, libcurl and libpam on Mac OS X is via Homebrew.

    4.PAM Configuration

    The file secsignid.c contains configuration settings for the module. Paths to the configuration file and the log- and debug files can be adjusted.

    Configuration file

    The configuration file secsignid.config combines the user name and corresponding SecSign ID. The file should be stored at /etc/secsignid/secsignid.config or at a location with root- or admin access rights. The path to the configuration file is set in the file secsignid.c with the constant CONFIGFILE.

    The SecSign ID transmits several information to the smartphone, including service name, the corresponding IP-address or URL:

    The configuration file has the following schema for mapping the linux username and the SecSignId:

    ID Server endpoints

    If you want to use your own On-Premise ID Server, you can change the endpoints in libsecsignid.c. The predefined cloud endpoints are the following:

    Modify the urls to fit your On-Premise ID Server configuration.


    The library contains a debug modus, which releases any interface communication. That enables the verification of request transmission and requests for session status. To activate the debug modus the following constants have to be adjusted.

    DEBUGTYPE specifies how the debug output is handled:

    • NO = No debugging
    • YES = Output on StdOut
    • FILEDEBUG = Output in file

    DEBUGFILEPATH describes the path for the debug-file. The file has to be be writeable with the program. If no debug-file exists one is automatically generated.


    Logging is meant for interface error. Technical errors (for example wrong syntax for the parameter) and API error (for example nonexistent user) are logged. Logs are either defined in the Syslog or a separate file:

    • FILELOG = Errors are written in a file, the second parameter is the file name.
    • SYSLOG = Errors are written in the Syslog, the second parameter is ignored but must be present.
    • NO = No log is written, the second parameter is ignored but must be present.

    5. Compilation and Installation

    To compile the PAM open the shell or the terminal, respectively, switch to the unpacked directory containing the C-script and enter make. The program pam_secsignid.so is created.

    The program can be compiled manually:

    After the successful compilation the file has to be stored in the PAM directory. Normally, it is /lib/security or /lib/x86_64-linux-gnu/security:

    6. Available APIS

    We provide an ever growing list of APIs and plugins to easily integrate the SecSign ID Two-Factor Authentication in any project. An overview is available at Plugin and APIs.
    We do not only offer APIs in different programming languages but also plugins for CMS, Server and VPN environments, oAuth2 and many more. These plugins use our APIs and offer additional functionalities, for example user management, easy and native installation, logging or integration in firewalls or Active Directory.

    The JIRA plugin for example uses the JAVA-API. The PHP-Api and JS-API is used by WordPress, Joomla, Drupal, Typo3 and many more. The ASP.net/C#-API is used for the Windows and Cisco VPN and the C-API is used for protecting Unix SSH services. The Objective-C API is used by our AppleTV and iPhone/iPad apps.


    7. See for yourself

    You can experience the SecSign ID two-factor authentication and the two-factor login by simply integrating the plugin into your website or test environment. Or you can try out the login process on our website without having to register first. You already have a SecSign ID or you want one? Login now and use the portal or use our hassle free registration.

    See for yourself how fast and convenient the login process using challenge-response authentication with 2048-bit key pairs is. There is no need for passwords, and no passwords or other confidential information are ever transmitted. It is easy to integrate and simple to use.

    For more information about the patented SafeKey procedure and it's unique security can be found here.

    If you are missing an API for the programming language you are working with, feel free to contact us and we’ll find a solution with you. If you need help with the integration into an existing system or you can’t find the plugin for your content management system you are working with, don’t hesitate to contact our support team.

    Your own ID-Server

    On premise installations of SecSign ID offer the flexibility to connect with your preferred servers, services, and devices. And you can customize the SecSign ID with your own organization’s branding.


    Why upgrade to SecSign?

    On-premise or in the cloud

    Choose between our SecSign ID Cloud or operate your own on-premise Two-Factor Authentication server.

    Easy customization

    Operate your own YourBrand ID app - Two-Factor Authentication customized to your needs.

    Ready-to-use SDK

    Integrate SecSign ID Two-Factor Authentication in existing apps with our ready-to-use SDK.

    Easy user management

    Use the Two-Factor Authentication Server to secure your company Active Directory/LDAP. Your own Identity and Access Management System, for example for mandatory updates and additional security features.

    Cover all logins

    Integration in any login environment: web, local, VPN, remote desktop, mobile logins and many more.

    Plugins for all your needs

    No need for complex integration: we have plugins for almost all environments.

    Do NOT follow this link or you will be banned from the site!