~/ssh-motd · a login banner that survives the wire

SSH MOTD ASCII art from an image

Turn a logo or photo into a plain-text login banner that renders before the shell prompt. Keep it narrow, keep the glyphs portable, and preview the exact bytes before they reach a server.

[ why_plain_text_motd ]

Why ASCII belongs in an SSH login

An MOTD (message of the day) arrives over the same text stream as the prompt. It cannot depend on an image host, browser, or GUI. A compact ASCII mark can identify the machine, separate environments, and stay readable through slow or restricted connections.

width is the budget

Design for the narrowest client that matters. A 64-column mark leaves room inside a conventional 80-column terminal and avoids surprise wrapping.

glyphs are the format

The standard charset is the safest default for unknown fonts. Blocks add weight; minimal works when the logo has a strong silhouette.

bytes stay local

Semaphore samples the source on a local canvas. There is no upload endpoint, and production CSP is connect-src 'none'.

[ steps ]

Five steps from image to MOTD

  1. 01 open a terminal-safe preset

    Start with standard, 64 columns, gray output, and contrast at +20. Plain-text copy contains characters only; gray simply gives the closest on-screen preview of an uncolored MOTD.

  2. 02 crop for silhouette

    Use a logo or subject with a clear outline and remove empty margins before conversion. Fine photographic texture usually disappears at login-banner width.

  3. 03 tune for the narrowest client

    Keep the result between 40 and 80 columns. If lines wrap, reduce columns before sacrificing contrast. Use invert when a dark mark arrives on a light background.

  4. 04 copy and inspect the file

    Copy plain text, save it as motd.txt, and inspect the exact width in a terminal before installation:

    wc -L motd.txt
    cat motd.txt

    wc -L counts display columns on GNU coreutils but bytes on macOS and BSD, so a blocks or braille banner reads about three times too wide there. One more reason to start on standard: every character is one byte, so the count is exact everywhere.

  5. 05 install through the path your OS owns

    Some systems read a static /etc/motd; others assemble login text from scripts such as /etc/update-motd.d/. Check the target distribution, preserve its managed content, add the reviewed banner at that layer, then open a fresh SSH session to verify the result.

[ quick_answers ]

Settings that survive real terminals

which charset is safest for an SSH MOTD?

Use standard when SSH clients and fonts are unknown. Use blocks only when the target font renders ░▒▓█ consistently. Braille carries more detail but relies on Unicode fallback glyphs.

does color copy to the MOTD?

No. Clipboard and .txt exports are plain characters. Add ANSI color later only if every target terminal and the system's MOTD pipeline support it.

why does the banner wrap?

The converted row is wider than the terminal, or the target font is not truly monospaced. Lower the column count and test with the same client used for SSH.

what belongs beside the art?

Keep static identity text short. Do not bake secrets, internal addresses, or stale service state into the artwork; let system-owned dynamic MOTD components report live facts.

[ convert ]

Build the login banner

Open the preset, drop a tightly cropped mark, and copy the result as plain text. The image never leaves the browser.