Home Technical Support YAML Formatting, SSH Configuration, and Carriage Return Characters: Essentials for DevSecOps Learners

YAML Formatting, SSH Configuration, and Carriage Return Characters: Essentials for DevSecOps Learners

Last updated on Jan 07, 2026

YAML Formatting, SSH Configuration, and Carriage Return Characters: Essentials for DevSecOps Learners

Understanding the fundamentals of file editing is a cornerstone of any DevSecOps workflow. Whether you are crafting CI/CD pipelines with YAML, tweaking your SSH client settings, or handling text‑file line endings, a solid grasp of these concepts prevents frustrating errors and keeps your automation reliable. This article walks you through three common topics that often appear in labs and certification exams:

  1. Why YAML spacing and indentation matter
  2. What the echo "StrictHostKeyChecking accept-new" >> ~/.ssh/config command does
  3. The role of carriage‑return characters (\r) in text processing

Each section includes clear explanations, practical examples, and tips to help you apply the knowledge immediately.


1. YAML Formatting and Indentation – Why It’s Critical

1.1 The YAML Basics You Need to Know

  • YAML = “YAML Ain’t Markup Language” – a human‑readable data‑serialization format used for configuration files, CI/CD pipelines, Kubernetes manifests, and more.
  • Indentation defines structure – unlike JSON or XML, YAML relies on spaces (never tabs) to indicate hierarchy. A misplaced space can turn a valid file into an unreadable one.

1.2 Common Indentation Pitfalls

Symptom Typical Cause Quick Fix
expected <block end> error Inconsistent number of spaces Use 2‑space or 4‑space indentation consistently throughout the file.
Keys appear as strings with quotes Unnecessary quoting of simple keys Remove quotes unless the key contains special characters.
“mapping values are not allowed here” Mixing tabs and spaces Convert all tabs to spaces (most editors have a “Convert tabs to spaces” option).

1.3 Practical Example

# Correct indentation (2 spaces per level)
pipeline:
  stages:
    - name: Build
      script: |
        mvn clean install
    - name: Test
      script: |
        mvn test

If the script line were indented with a tab or an extra space, the CI/CD engine would reject the file.

1.4 Tips for Maintaining Proper Indentation

  1. Use an editor with YAML linting – VS Code, PyCharm, or Sublime Text can highlight indentation errors in real time.
  2. Copy‑and‑paste from trusted sources – When you paste a snippet, use the “Paste as plain text” option to preserve spaces.
  3. Leverage the hint button in labs – Many learning platforms provide a “Hint” that pastes correctly indented YAML directly into your terminal.

2. Understanding the SSH Config Command

2.1 Command Breakdown

echo "StrictHostKeyChecking accept-new" >> ~/.ssh/config
Part Explanation
echo "StrictHostKeyChecking accept-new" Prints the string StrictHostKeyChecking accept-new to standard output.
>> Appends the output to the file on the right side (creates the file if it doesn’t exist).
~/.ssh/config The per‑user SSH client configuration file.

2.2 What the Setting Does

  • StrictHostKeyChecking accept-new tells the SSH client to automatically add unknown host keys to ~/.ssh/known_hosts without prompting the user.
  • This is especially useful in automated pipelines where interactive prompts would stall the job.

2.3 When to Use It (and When Not to)

Scenario Recommended? Reason
Automated CI runners that need to SSH into fresh VMs Eliminates manual host‑key verification.
Production environments with strict security policies Bypassing host‑key verification can expose you to man‑in‑the‑middle attacks.
Temporary test environments Convenience outweighs the minimal risk.

2.4 Example: Adding the Setting Safely

# Ensure the .ssh directory exists and has proper permissions
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# Append the setting (creates config if missing)
echo "StrictHostKeyChecking accept-new" >> ~/.ssh/config

# Verify the line was added
grep "StrictHostKeyChecking" ~/.ssh/config

3. Carriage Return Characters (\r) – What They Are and Why They Matter

3.1 Definition

  • Carriage Return (CR) – a control character represented as \r (ASCII 13). Historically, it moved the cursor back to the start of the line on a typewriter or terminal.

3.2 How CR Interacts with Line Feeds (\n)

Operating System Typical Line Ending
Windows \r\n (CR + LF)
Unix/Linux/macOS \n (LF only)
Classic Mac OS \r (CR only)

When a file contains the wrong line ending for the platform, tools may misinterpret the content, leading to errors such as “command not found” in shell scripts.

3.3 Real‑World Scenarios

  • Script failures on Linux – A Bash script edited on Windows may contain \r characters, causing each line to end with an invisible \r. The shell sees #!/bin/bash\r and throws a “bad interpreter” error.
  • CI log clutter – Carriage returns can overwrite previous log lines, making debugging harder.

3.4 Detecting and Removing CR Characters

# Show hidden characters with cat -v
cat -v myscript.sh | grep '\r'

# Remove CRs using dos2unix (install via package manager if needed)
dos2unix myscript.sh

# Alternatively, use sed
sed -i 's/\r$//' myscript.sh

3.5 Best Practices

  • Configure your editor to use LF line endings for code that runs on Linux containers.
  • Add a pre‑commit hook (e.g., using pre-commit or husky) that runs dos2unix on staged files.
  • Validate line endings in CI pipelines with a simple grep -P '\r' step.

Common Questions & Quick Tips

Q1: Can I use tabs instead of spaces in YAML?

A: No. YAML specifications require spaces only. Most parsers will reject files containing tabs.

Q2: Will appending StrictHostKeyChecking accept-new overwrite existing config?

A: The >> operator appends; it never overwrites. If you need to replace an existing line, edit the file manually or use sed.

Q3: Is it safe to remove all \r characters from a file?

A: Generally, yes, for scripts and configuration files intended for Unix-like environments. Be cautious with files that deliberately use \r (e.g., legacy Windows batch files).

Quick Tip Checklist

  • YAML: 2‑space indentation, no tabs, validate with a linter.
  • SSH Config: Use >> to append safely; verify with grep.
  • Carriage Returns: Run dos2unix before committing code that runs on Linux.

Takeaway

Mastering file formatting—whether it’s YAML indentation, SSH client configuration, or handling carriage returns—prevents a cascade of avoidable errors in your DevSecOps pipelines. Apply the examples and tips above in your labs, and you’ll spend less time debugging and more time building secure, automated solutions.