DEV Community

Cover image for Generate SSH Keys Effortlessly with generate-ssh-key
Elias
Elias

Posted on

2

Generate SSH Keys Effortlessly with generate-ssh-key

🔑 Simplify SSH Key Generation for Git

Have you ever struggled with setting up SSH keys for your Git repositories? Or maybe you're tired of explaining the process to new team members? I've created a simple utility that makes this process a breeze!

Hi! I'm Elias Floreteng, and I built this tool after noticing how many developers struggle with SSH key setup, especially when onboarding new team members. I wanted to create something that would make this process completely painless for everyone.

What is generate-ssh-key?

generate-ssh-key is a cross-platform Node.js utility that generates ED25519 SSH keys with a single command. It handles all the complexities of SSH key generation, including:

  • Creating the .ssh directory with proper permissions
  • Generating a secure ED25519 key pair
  • Copying the public key to your clipboard
  • Automatically installing OpenSSH on Windows if needed
  • Converting your repository URLs from HTTPS to SSH

Getting Started

It's as simple as running:

npx generate-ssh-key
Enter fullscreen mode Exit fullscreen mode

That's it! The tool will guide you through the rest of the process.

Key Features

1. Cross-Platform Support

Works seamlessly on Windows, macOS, and Linux, handling platform-specific requirements automatically.

2. Smart OpenSSH Installation

On Windows, it checks if OpenSSH is installed and helps you install it if needed.

3. Automatic Clipboard Copy

Your public key is automatically copied to your clipboard, ready to be pasted into GitHub, GitLab, or any other service.

4. Repository URL Conversion

If you're in a Git repository, it can automatically convert your remote URLs from HTTPS to SSH format.

Why ED25519?

The utility generates ED25519 keys by default because they're:

  • More secure than RSA keys
  • Faster to generate and use
  • Shorter and more convenient to work with

Next Steps After Generation

The tool provides clear instructions for:

  1. Adding your key to GitHub/GitLab
  2. Converting existing repositories to use SSH
  3. Cloning new repositories with SSH URLs

Under the Hood

The utility is built with Node.js and uses several key packages:

  • chalk for colorful console output
  • inquirer for interactive prompts
  • which for command availability checking

Contribute

This is an open-source project! If you'd like to contribute or check out the code, visit the GitHub repository:
generate-ssh-key on GitHub

Install Globally

If you use it frequently, you can install it globally:

npm install -g generate-ssh-key
Enter fullscreen mode Exit fullscreen mode

Then use it anywhere with:

generate-ssh-key
Enter fullscreen mode Exit fullscreen mode

Never struggle with SSH key generation again! Try it out and let me know what you think in the comments below. 💬

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

11 Tips That Make You a Better Typescript Programmer

typescript

1 Think in {Set}

Type is an everyday concept to programmers, but it’s surprisingly difficult to define it succinctly. I find it helpful to use Set as a conceptual model instead.

#2 Understand declared type and narrowed type

One extremely powerful typescript feature is automatic type narrowing based on control flow. This means a variable has two types associated with it at any specific point of code location: a declaration type and a narrowed type.

#3 Use discriminated union instead of optional fields

...

Read the whole post now!

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay