Fixing 'Enter passphrase for /dev/fd/63' in a Gitlab CI job

By: ; Date: 2016-06-30 16:53

Tags: Gitlab » SSH Key » Security

If you're a Gitlab user you're probably hoping to use Gitlab CI to automate builds and deployments. You probably want to deploy something using rsync, using an SSH key for security. Unfortunately (in my opinion) the official Gitlab documentation is confusing. While the Gitlab team does provide example .gitlab-ci.yml files that are supposed to work, the actual specifics of what to do are sketchy, and I found myself puzzling over a curious error message: "Enter passphrase for /dev/fd/63" ... WTF?

The official example for using an SSH key in a .gitlab-ci.yml file is here:-

The instructions are to ensure ssh-agent is installed, then to run

eval $(ssh-agent -s)
ssh-add <(echo "$SSH_PRIVATE_KEY")

The Enter passphrase for /dev/fd/63 message occurred right after that last command. The message is cryptic, however the ssh-add command for some reason thinks it must ask for a passphrase. For example, is it an ssh key which requires a secondary password?

What we have to do is revisit the process of attaching an SSH key to a Gitlab CI configuration.

The first step is to generate an SSH key that you'll use for this Gitlab CI job. On your laptop you do have OpenSSH tools installed, and have access to the ssh-keygen command, right?

Simply run:

$ ssh-keygen -f ~/Downloads/hmp.key

Just hit return for all the prompts. Give whatever filename you wish - that was simply the one I used. It generates the private key in the named file, then generates a second file containing the public key. In my case that file name was /Users/david/Downloads/

It's important that this ssh key not have a passphrase associated with it. That's why it's important to just hit return for all the prompts. It's important that, for this key, that SSH tools not prompt for a passphrase.

In Gitlab, go to the Variables section of the project configuration. Add a new Variable, named SSH_PRIVATE_KEY, whose contents is the text in the private key file just generated.

Then, on any server this Gitlab CI job needs to access, add the public key. For example, add it to ~/.ssh/authorized_keys on the server.

Once you've done these steps, the ssh-add shown above will execute properly.

« Upgrading or replacing battery pack, SSD and other parts on Acer C720 Chromebook's The simple cure if a Wordpress custom content type doesn't display, but gives a 404 page not found »
2016 Election Acer C720 Ad block Android Apple Hardware History Apple iPhone Hardware April 1st ARM Compilation Authoritarianism Big Brother Blade Runner Botnets Cassette Tapes Cellphones Christopher Eccleston Chrome Chrome Apps Chromebook Chromebooks ChromeOS CIA CitiCards Civil Liberties Clinton Cluster Computing Computer Hardware Computer Repair Cross Compilation Crouton Cybermen Daleks Darth Vader Data backup Data Storage Database Database Backup Databases David Tenant Detect Adblocker Digital Photography DIY Repair Docker Doctor Who Drobo Drupal Drupal Themes DVD Emdebian ESP8266 Eurovision Facebook Fake News FireFly Fraud Freedom of Speech Gallifrey git Gitlab GMAIL Google Google Chrome Google Gnome Government Spying Great Britain Home Automation HTTPS InfluxDB Internet Internet of Things Internet Privacy iPad iPhone iPhone hacking Iron Man Iternet of Things JDBC John Simms Lets Encrypt LibreOffice Linux Linux Hints Linux Single Board Computers Mac OS MEADS Anti-Missile Mercurial Michele Gomez Military Hardware Missy Mobile Applications Mondas Monty Python MQTT Music Player Music Streaming MySQL NanoPi Node Web Development Node.JS Online advertising Online Fraud Open Media Vault Open Source Software OpenVPN Personal Flight Peter Capaldi Photography Plex Media Server Political Protest Power Control Privacy Public Violence Raspberry Pi Raspberry Pi 3 Raspberry Pi Zero Recycling Republicans Retro-Technology Right to Repair River Song Rocket Ships Russia Russia Troll Factory Science Fiction Season 1 Season 10 Season 11 Security Security Cameras Silence Simsimi Skype Social Media Warfare Software Development Space Flight Space Ship Reuse Space Ships SpaceX SQLite3 SSD Drives SSD upgrade SSH SSH Key SSL Terrorism The Cybermen The Daleks The Master Time-Series Database Torchwood Total Information Awareness Trump Trump Administration Ubuntu Virtual Private Networks VOIP Web Developer Resources Web Development Tools Weeping Angels WhatsApp Wordpress