Fix password/secret authentication failures caused by trailing newlines when creating Google Cloud secrets (or similar) with bash here-strings. Use when: (1) Password authentication fails with correct password, (2) Secret created with `<<< "value"` syntax, (3) Error like "password authentication failed" or "invalid token" despite correct value. Bash here-strings (`<<<`) add a trailing newline that corrupts secrets.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add divinevideo/divine-mobile --skill bash-herestring-newline-secrets --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bash Herestring Newline Secrets?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/divinevideo-bash-herestring-newline-secrets-divine-mobile)More formats (shields.io, HTML) on the badges page.
---
name: bash-herestring-newline-secrets
description: |
Fix password/secret authentication failures caused by trailing newlines when creating
Google Cloud secrets (or similar) with bash here-strings. Use when: (1) Password
authentication fails with correct password, (2) Secret created with `<<< "value"` syntax,
(3) Error like "password authentication failed" or "invalid token" despite correct value.
Bash here-strings (`<<<`) add a trailing newline that corrupts secrets.
author: Claude Code
version: 1.0.0
date: 2026-01-31
---
# Bash Here-String Newline in Secrets
## Problem
When creating secrets using bash here-strings (`<<<`), a trailing newline is silently
appended to the value. This causes authentication failures with misleading error messages
that suggest the password/token is wrong when it's actually correct—just with an extra
newline character.
## Context / Trigger Conditions
- Secret created with: `gcloud secrets create NAME --data-file=- <<< "value"`
- Or similar: `echo "value" | gcloud secrets create...` (echo adds newline by default)
- Error messages like:
- "password authentication failed for user X"
- "invalid token"
- "authentication failed"
- The secret value appears correct when viewed
- Works locally but fails when secret is used
## Solution
**Wrong (adds newline):**
```bash
gcloud secrets create my-secret --data-file=- <<< "mypassword"
echo "mypassword" | gcloud secrets create my-secret --data-file=-
```
**Correct (no newline):**
```bash
echo -n "mypassword" | gcloud secrets create my-secret --data-file=-
printf '%s' "mypassword" | gcloud secrets create my-secret --data-file=-
```
**To fix an existing secret:**
```bash
echo -n "correct-value" | gcloud secrets versions add my-secret --data-file=-
```
## Verification
Check the secret length to detect trailing newline:
```bash
# Get secret and count bytes
gcloud secrets versions access latest --secret=my-secret | wc -c
# Compare to expected length (password length, not password length + 1)
```
Or use `xxd` to see the actual bytes:
```bash
gcloud secrets versions access latest --secret=my-secret | xxd | tail -1
# Look for '0a' (newline) at the end
```
## Example
**Symptom:**
```
Database connection test failed: password authentication failed for user "crawler"
```
**Investigation:**
```bash
$ gcloud secrets versions access latest --secret=my-db-password
mypassword
$ gcloud secrets versions access latest --secret=my-db-password | wc -c
11 # But password is only 10 characters!
```
**Fix:**
```bash
$ echo -n "mypassword" | gcloud secrets versions add my-db-password --data-file=-
Created version [2] of the secret [my-db-password].
```
## Notes
- This affects any system that uses secrets: databases, APIs, tokens, etc.
- The `<<<` here-string is a bash feature that ALWAYS adds a newline
- `echo` also adds a newline by default; use `echo -n` or `printf '%s'`
- Some systems trim whitespace from secrets, but many (like PostgreSQL) don't
- When debugging auth failures, always check for trailing whitespace first
## References
- Bash manual on here-strings: https://www.gnu.org/software/bash/manual/bash.html#Here-Strings
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!