SSH Key Authentication

AbeBooks FTP services support SSH public key authentication as an alternative to username and password credentials. This provides stronger security because no secrets are transmitted with each connection.

SSH key authentication is supported by:

Overview

With SSH key authentication, you generate a key pair on your machine — a private key (which stays with you) and a public key (which you upload to AbeBooks). When you connect to the FTP server, the key pair verifies your identity without transmitting a password.

Step 1: Generate a key pair

If you don't already have an SSH key pair, generate one using the ssh-keygen command:

ssh-keygen -t ed25519 -C "your-label@example.com"

When prompted, choose a location to save the key and optionally set a passphrase (recommended).

This creates two files:

  • ~/.ssh/id_ed25519, your private key (keep this secret)
  • ~/.ssh/id_ed25519.pub, your public key (upload this to AbeBooks)

RSA keys (minimum 2048-bit) are also supported:

ssh-keygen -t rsa -b 4096 -C "your-label@example.com"

Step 2: Upload your public key

  1. Log into your AbeBooks seller account
  2. Navigate to Manage API Keys
  3. Click Generate New Key and select SSH Key as the key type
  4. Select the service(s) to authorize this key for (Inventory FTP, AMoP FTP, or both)
  5. Paste the contents of your public key file (e.g., ~/.ssh/id_ed25519.pub)
  6. Optionally add a label to identify this key (e.g., "Production Server")
  7. Click Save

To view your public key contents:

cat ~/.ssh/id_ed25519.pub

The output will look something like:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG... your-label@example.com

Step 3: Connect using your key

Connect to the FTP server using SFTP with your private key:

sftp -i ~/.ssh/id_ed25519 YOUR_CLIENT_PIN@orders.abebooks.com

Replace YOUR_CLIENT_PIN with your AbeBooks client PIN (username) and use the appropriate host:

Service Host
Inventory FTP ftp.abebooks.com
AMoP FTP orders.abebooks.com

Multiple SSH keys

You can upload multiple SSH public keys, each authorized for different services. This is useful if you use separate keys for different servers or environments. See Managing Keys for details.

Legacy authentication

SSH key authentication is optional. You can continue using username/password authentication with your existing credentials. Both methods can be active simultaneously — if a password is provided, it will be validated against your credentials. If no password is provided, AbeBooks will authenticate using your SSH public key.

Troubleshooting

Issue Solution
Permission denied (publickey) Verify you uploaded the correct public key, and that the key is authorized for the service you're connecting to
Key not accepted Ensure the key type is supported (ed25519 or RSA 2048+). DSA keys are not supported
Connection timeout Verify you're connecting on port 22 and that your network allows outbound SSH
Wrong username Your username is your AbeBooks client PIN, not your email address