Make an SSH-safe filename

100% local. Your text never leaves this browser tab.

For scp, rsync, SSH and URLs, the safe choice is the POSIX portable filename set: A-Z a-z 0-9 . _ -. Paste a name below and this profile keeps those characters and turns every space, symbol or accent into an underscore, so the name never needs quoting or escaping on a server.

Cleaning a filename for a different system? Pick your target:
Windows macOS Linux SSH / shell-safe
What SSH-safe means

The rules, in plain terms

The portable set

Only A-Z, a-z, 0-9, dot, underscore and hyphen survive. This is the POSIX portable filename character set.

Everything else becomes _

Spaces, parentheses, symbols and accented letters are replaced with a single underscore, and runs are collapsed so you never get a double.

Why it matters over scp

Portable names need no quoting or backslash-escaping in the shell, so scp, rsync and wildcards just work.

The Windows app

Put it on a hotkey

☕ Filenames that survive scp, rsync and SSH, on a hotkey for the price of a coffee. Yours forever.

Download this exact setup as a ready-made Filename-safe (SSH / shell-safe) profile. Give it a global hotkey in the Windows app and any name you copy is cleaned for this target the instant you paste, so a Windows machine can prepare files for a Mac, a Linux box or a server over SSH. Same engine as above, entirely offline.

Get the Windows app →
Pay once, €3.39, no subscription. If the app doesn’t open, the profile is saved to your downloads, just import it.
FAQ

Filenames, answered plainly

What characters are safe in a filename for SSH or scp?

Stick to the POSIX portable filename set: uppercase and lowercase letters, digits, and the three punctuation marks dot ., underscore _ and hyphen - (not as the first character). Names built only from those never need quoting over scp, rsync or SSH.

Why do spaces and symbols break scp and rsync?

The shell splits arguments on spaces and treats characters like * ? [ ] ( ) & ; | < > $ as syntax, so an unquoted messy name is misread as several arguments or a pattern. Replacing them with underscores removes the ambiguity.

What is the POSIX portable filename character set?

It is the set defined by POSIX as safe on any conforming system: A-Z a-z 0-9 . _ -, with the hyphen not used as the first character. Filenames restricted to it are the most portable across servers, tools and archives.

Should server filenames be lowercase?

It helps. Linux servers are case-sensitive while Windows is not, so mixing cases can cause collisions when files move between them. Lowercasing is optional here; flip on the lowercase option in the tool if you want it enforced.

Cleaning for a different system? Use the tabs above, or head back to the Windows filename cleaner or the full tool on the home page.