SShortSingh.
Back to feed

Forced SSH commands need a complete key policy, not just restricted options

0
·9 views

An authorized_keys entry can limit a public key to one fixed command and disable features such as terminal allocation and forwarding. These restrictions are useful for backup agents, deployment hooks, and narrow administrative tasks, but they do not amount to full authorization on their own. The command, the key owner, the inherited environment, and the server configuration all determine what a key can actually do. Experts advise using separate service accounts for integrations with different privilege levels, validating any client-supplied input with a narrow grammar rather than passing it to a shell, and testing effective behavior after upgrades or configuration changes. They also recommend tracking each key's owner, purpose, and review date, rotating keys on a schedule, and logging authentication events without recording secrets.

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 ·

How One Team Cut a Large Web App's Home Page Load from Over 10 Seconds to Under 1

A developer reports that the home page of a large Meteor 2.16 web app, which took more than 10 seconds in production, now loads in under one second. The gains came from shrinking the JavaScript and CSS each page downloads from about 6,070 KB to 2,434 KB gzip, and cutting the CPU time spent before first paint from 6.1 seconds to 1.5 seconds. Over 1,000 templates were moved out of the main bundle and loaded with their routes, with the lazy code served from a custom-designed CDN. The write-up describes how the bottlenecks were located, the measurement tools built for it, and the pitfalls that broke features along the way. The author notes that some limitations stem from Meteor itself, though the method is not tied to that framework.

0
ProgrammingDEV Community ·

Engineering a Scalable Product Comparison Engine with Structured Metadata and Review Signals

A developer article examines the architecture needed to build a product comparison and discovery platform that handles varied specifications and high-volume user feedback. It identifies the difficulty of managing diverse catalogs across categories such as electronics and software subscriptions, and proposes a hybrid storage design combining relational tables with a flexible key-value or JSONB store. The piece describes a normalization layer that standardizes inconsistent units and formats, such as battery capacity values, so products can be compared reliably. It also argues that simple average star ratings can misrepresent quality, motivating more transparent review aggregation methods. The article additionally covers responsible use of AI-assisted analysis within such systems.

0
ProgrammingDEV Community ·

US Fitness Retailer Links Strapi Content, Shopify Commerce and HubSpot Without Storefront Rebuild

A US fitness retailer with about 30 employees had a working Shopify storefront but disconnected workflows across fitness content, products, class registration and marketing. Rather than replacing Shopify, the team kept it for products, carts and secure checkout. Strapi CMS was introduced to organize workout programs, trainer profiles, articles and class information in one structured place. APIs were then used to connect that content with relevant Shopify products and class-registration tools, while HubSpot supported customer segmentation and email marketing. The project aimed to reduce duplicated content work and give customers a more connected path from fitness content to purchases and bookings.

0
ProgrammingDEV Community ·

Gatsby Site Showed Old Content Despite Sanity Update, Due to Missing Production Build

A team running Sanity for content, Gatsby for page generation, and Netlify for hosting found that a revised article published in Sanity did not appear on their live site. Production builds do not automatically pick up CMS changes, since Gatsby's watch mode is only active in development. Netlify's deploy history confirmed no new build had run after the Sanity publication, so the live page kept serving the previously generated HTML. Triggering a fresh production build resolved the issue. The team plans to connect Sanity and Netlify with a webhook or build hook, though this is not yet set up.