SShortSingh.
Back to feed

SSH Misconfiguration Turned a Routine Migration Revert Into a Live Outage

0
·2 views

A developer documentation site went down after a migration pull request deleted a legacy PHP app that production servers were still actively serving via a cron-based git pull deployment. A revert was merged within 13 minutes, but servers could not retrieve it because the SSH deploy key had been removed during migration cleanup, leaving both backends unable to reach the repository. Compounding the issue, multiple SSH keys on the server caused GitHub to authenticate with the wrong identity, returning a misleading 'Repository not found' error. The team bypassed SSH entirely by downloading the repository as a tarball via the GitHub API, staging it on S3, and extracting it directly to the web root to restore service. The incident highlighted how infrastructure components like deploy keys and SSH config aliases can be mistakenly treated as disposable legacy artifacts during migrations.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

OneToolBox offers free browser-based developer utilities with no account required

A developer has launched OneToolBox, a free collection of web-based utilities available at onetoolbox.dev. The platform includes tools for JSON processing, YAML validation, hash generation, text diffing, image editing, and file conversion. All operations run directly in the browser, meaning no user files or data are sent to a server and no account registration is needed. The project is still under active development, and the creator is seeking honest feedback from developers who regularly use such utilities. Suggestions on missing tools or areas for improvement are especially welcomed.

0
ProgrammingDEV Community ·

Kubernetes Secrets Use Base64 Encoding, Not Encryption, Experts Warn

A technical explainer published on DEV Community highlights a widespread misconception among Kubernetes users: Secret objects store data as Base64-encoded text, not encrypted values. Base64 is a binary-to-text encoding scheme that is instantly reversible without any key, meaning credentials stored this way remain effectively in plaintext. Without additional configuration, Kubernetes Secrets sit in the etcd datastore with no cryptographic protection. Developers are advised to treat any Secret YAML file as plain credentials and avoid committing it to version control. Real security requires layered measures such as etcd encryption at rest via a KMS provider, Sealed Secrets, SOPS, or external secret stores like HashiCorp Vault, combined with strict RBAC controls.

0
ProgrammingDEV Community ·

Developer Works on Mobile Performance Tuning for New Game Ahead of Launch

A developer is spending the weekend optimizing their newly built game for mobile platforms. While the game runs smoothly on desktop, performance on mid-range and low-end Android devices needs improvement. The focus is on reducing resource demands to ensure a better experience for mobile users. The developer aims to push the game to mobile platforms once the optimization work is complete.

0
ProgrammingDEV Community ·

Why Your Claude Code Custom Skills Fail to Trigger and How to Fix Them

A development team manager who has used Claude Code daily for months found that custom skills — built to automate tasks like code review and debugging — often fail to activate not because of flawed instructions, but because of poorly written descriptions. In Claude Code, a skill's description acts as a routing rule, and the full instructions only load after the description matches a user's request. The author found that descriptions must include the casual, abbreviated phrases developers actually type — such as 'review this' or 'fix it' — rather than formal language. He also recommends specifying the types of inputs that trigger a skill, such as pasted code or stack traces, and defining clear boundaries to prevent overlapping skills from conflicting. His practical test: make five natural, real-world requests in a fresh session and only ship the skill if it fires on at least four of them.