2016-08-08 9 views
2

Ich verwende sed, um einen Platzhalter in einem Skript durch meinen öffentlichen ssh-Schlüssel zu ersetzen. Das Zeichen / ist definitiv in einigen SSH-Schlüsseln vorhanden, wie kann ich herausfinden, welches Zeichen ich als Trennzeichen für sed verwenden kann?Zeichensatz von SSH-Schlüsseln (sicheres Trennzeichen für die Verwendung von sed mit öffentlichen Schlüsseln)

Ich bin auf der Suche nach einer Antwort entweder der Menge aller Zeichen, die Teil der Zeichenfolge sein können, die von ssh-keygen erzeugt wird, oder welche Zeichen garantiert nicht sind.

+1

SSH-Schlüsseldaten sind Base64-codiert ... schauen Sie einfach den gültigen Zeichensatz für die base64-Codierung nach. Ich denke, dafür gibt es einen RFC. – larsks

Antwort

2

Der öffentliche Schlüssel im Format opnessh ist , wie zum Beispiel in der Handbuchseite für sshd erwähnt. Daher können Sie jedes Zeichen verwenden, das nicht in der Liste base64 characters enthalten ist. Die / ist da, aber zum Beispiel | kann sicher verwendet werden (obwohl im Kommentarabschnitt alles sein kann).

+0

Nur aus Wikipedia zu schließen, alles außerhalb 'az',' AZ', '0-9' und'/',' + ', und' = 'sollte in Ordnung sein, wenn es nicht im Kommentarabschnitt erscheint . –

0

Informationen vom info sed, Abschnitt 3.5:

Die ‚/‘ Zeichen können einheitlich durch ein anderes einzelnes Zeichen innerhalb eines bestimmten ‚s‘ Befehl ersetzt werden.

Das Zeichen ‚/‘ (oder was auch immer andere Zeichen an ihrer Stelle verwendet werden) kann erscheint im REGEXP oder Ersatz nur, wenn es durch ein ‚\‘ Zeichen vorangestellt ist.

Sie können also jedes geeignete Zeichen auswählen, das nicht in Ihren Eingabedaten erscheint.

+0

Die Frage war eher, welches wäre ein geeigneter Charakter, der garantiert nicht in meinen Eingabedaten (ssh keys) erscheint? Nicht wie verwende ich ein anderes Trennzeichen in 'sed'. –

Verwandte Themen