Bird
Raised Fist0
Linux CLIscripting~10 mins

SSH key generation (ssh-keygen) in Linux CLI - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to generate a new SSH key pair using the default RSA algorithm.

Linux CLI
ssh-keygen [1]
Drag options to blanks, or click blank then click option'
A-t rsa
B-p
C-f
D-l
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-p' which is for changing passphrase.
Using '-f' which specifies file name.
Using '-l' which lists fingerprints.
2fill in blank
medium

Complete the code to specify the file name for the SSH key pair.

Linux CLI
ssh-keygen -t rsa [1] ~/.ssh/my_custom_key
Drag options to blanks, or click blank then click option'
A-C
B-f
C-l
D-p
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-p' which is for passphrase.
Using '-l' which lists fingerprints.
Using '-C' which adds a comment.
3fill in blank
hard

Fix the error in the command to add a comment to the SSH key.

Linux CLI
ssh-keygen -t rsa -C [1]
Drag options to blanks, or click blank then click option'
Amykey
Bmykey@example.com
C"mykey@example.com"
D-C
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting the comment with special characters.
Using the option '-C' again as a value.
Using a comment without '@' when an email is expected.
4fill in blank
hard

Fill both blanks to generate an Ed25519 SSH key with a custom file name.

Linux CLI
ssh-keygen [1] [2] ~/.ssh/id_ed25519_custom
Drag options to blanks, or click blank then click option'
A-t ed25519
B-f
C-p
D-C
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-p' which is for passphrase.
Using '-C' which is for comment.
Mixing up the order of options.
5fill in blank
hard

Fill all three blanks to generate an RSA SSH key with a comment and a custom file name.

Linux CLI
ssh-keygen [1] [2] ~/.ssh/id_rsa_custom [3] "user@example.com"
Drag options to blanks, or click blank then click option'
A-t rsa
B-f
C-C
D-p
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-p' instead of '-C' for comment.
Not quoting the comment.
Omitting the file name option.

Practice

(1/5)
1. What is the primary purpose of the ssh-keygen command in Linux?
easy
A. To start an SSH server on the local machine
B. To generate a pair of cryptographic keys for SSH authentication
C. To connect to a remote server using SSH
D. To display the current SSH connections

Solution

  1. Step 1: Understand the function of ssh-keygen

    The ssh-keygen command is used to create a pair of keys: a private key and a public key, which are used for secure SSH authentication.
  2. Step 2: Differentiate from other SSH commands

    Starting an SSH server or connecting to a server uses different commands like sshd or ssh. Displaying connections is unrelated.
  3. Final Answer:

    To generate a pair of cryptographic keys for SSH authentication -> Option B
  4. Quick Check:

    ssh-keygen creates keys = B [OK]
Hint: ssh-keygen always creates keys, not connections or servers [OK]
Common Mistakes:
  • Confusing ssh-keygen with ssh command
  • Thinking ssh-keygen starts SSH server
  • Assuming ssh-keygen shows active connections
2. Which of the following is the correct syntax to generate an RSA SSH key pair with ssh-keygen?
easy
A. ssh-keygen -t rsa
B. ssh-keygen -g rsa
C. ssh-keygen --generate rsa
D. ssh-keygen -type rsa

Solution

  1. Step 1: Identify the correct option flag for key type

    The -t flag specifies the type of key to generate, such as rsa, dsa, or ed25519.
  2. Step 2: Check the syntax correctness

    Only ssh-keygen -t rsa is valid syntax. Other options like -g, --generate, or -type are invalid or do not exist.
  3. Final Answer:

    ssh-keygen -t rsa -> Option A
  4. Quick Check:

    -t specifies type = D [OK]
Hint: Use -t to specify key type in ssh-keygen [OK]
Common Mistakes:
  • Using -g instead of -t for key type
  • Adding extra words like --generate
  • Using -type instead of -t
3. What will be the output of the following command if the default key files already exist?

ssh-keygen -t ed25519
medium
A. It throws an error and exits immediately
B. It overwrites the existing key files without warning
C. It prompts to overwrite the existing files or choose a new name
D. It generates a new key with a random filename automatically

Solution

  1. Step 1: Understand ssh-keygen behavior on existing files

    When key files already exist, ssh-keygen asks the user if they want to overwrite or specify a new filename.
  2. Step 2: Confirm it does not overwrite silently or error out

    It does not overwrite without confirmation, nor does it throw an error or generate random filenames automatically.
  3. Final Answer:

    It prompts to overwrite the existing files or choose a new name -> Option C
  4. Quick Check:

    ssh-keygen asks before overwrite = A [OK]
Hint: ssh-keygen asks before overwriting existing keys [OK]
Common Mistakes:
  • Assuming it overwrites files silently
  • Expecting an error instead of prompt
  • Thinking it auto-generates random filenames
4. You ran ssh-keygen -t rsa -b 4096 but got an error: unknown option: -b. What is the most likely cause?
medium
A. The command requires sudo privileges to use -b
B. The -b option is invalid for RSA keys
C. You must specify the key filename before the -b option
D. You used an outdated ssh-keygen version that does not support the -b option

Solution

  1. Step 1: Understand the -b option usage

    The -b option sets the number of bits for the key size and is valid for RSA keys.
  2. Step 2: Identify why the error occurs

    An unknown option error usually means the ssh-keygen version is old and does not recognize the -b flag.
  3. Final Answer:

    You used an outdated ssh-keygen version that does not support the -b option -> Option D
  4. Quick Check:

    Old ssh-keygen lacks -b support = A [OK]
Hint: Check ssh-keygen version if options cause unknown errors [OK]
Common Mistakes:
  • Thinking -b is invalid for RSA
  • Believing filename order matters for options
  • Assuming sudo is needed for key size
5. You want to automate SSH key generation in a script without any prompts, saving the key as ~/.ssh/id_ed25519_custom. Which command correctly achieves this?
hard
A. ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom -N ''
B. ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom
C. ssh-keygen -t ed25519 -N ''
D. ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom -y

Solution

  1. Step 1: Understand flags for silent key generation

    The -f flag sets the filename, and -N '' sets an empty passphrase to avoid prompts.
  2. Step 2: Check each option for automation suitability

    ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom -N '' uses both -f and -N '' correctly. ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom misses -N so it prompts for passphrase. ssh-keygen -t ed25519 -N '' misses filename, so default is used. ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom -y uses -y which outputs public key but does not generate keys silently.
  3. Final Answer:

    ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_custom -N '' -> Option A
  4. Quick Check:

    Use -f for file and -N '' for no passphrase = C [OK]
Hint: Use -f for file and -N '' for no passphrase to avoid prompts [OK]
Common Mistakes:
  • Omitting -N '' causes passphrase prompt
  • Forgetting to specify filename with -f
  • Using -y which only outputs public key
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard