Ich möchte diese Zeichenfolge löschen:
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Bitte melden Sie sich als Benutzer \"centos\" und nicht als Benutzer \"root\" an.';echo;sleep 10"
in der folgenden Datei:
keine Portweiterleitung, keine Agentenweiterleitung, keine X11-Weiterleitung, Befehl = "echo 'Bitte melden Sie sich als Benutzer \"centos\" und nicht als Benutzer \"root\" an.';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCV9sc7lTrpAJb1UARLmNA08XD8Dy0hGJiX1E5qYk8MkH36xbBtcO6xeuncFr619pu+R/08jkYn9GIXlgPzD9THUpEI+m/OSp5nVPgIamiN7LudOSks6zwk9THkxeSmW95KNEHW5h8Y8MoB0wXzGdr0yiV32nLmvyG18JU6
Antwort1
Bei der Datei handelt es sich um eine authorized_keys
Datei für SSH, die häufig in zu finden ist ~/.ssh/authorized_keys
. Sie hat eine Reihe von Feldern, und das Feld, das Sie entfernen möchten, ist das erste optionale „Options“-Feld.
Das zweite Feld ist das Feld „Schlüsseltyp“, das je nach Handbuch einen der Werte ecdsa-sha2-nistp256
,
ecdsa-sha2-nistp384
, ecdsa-sha2-nistp521
, ssh-ed25519
, ssh-dss
oder hat.ssh-rsa
sshd
Wir können diese Tatsache nutzen, um das Optionsfeld zu entfernen:
sed -E 's/^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))/\1/' ~/.ssh/authorized_keys >~/.ssh/authorized_keys.new &&
mv ~/.ssh/authorized_keys.new ~/.ssh/authorized_keys &&
chmod go-rwx ~/.ssh/authorized_keys
Oder Sie können sed -i ...
die Datei direkt ändern, wenn Sie wissen, wie dies normalerweise unter Unix funktioniert (das -i
Flag funktioniertleichtunterschiedlich in verschiedenen Implementierungen von sed
).
Der sed
Bearbeitungsbefehl s/^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))/\1/
gleicht den erweiterten regulären Ausdruck ab ^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))
und ersetzt den übereinstimmenden Text durch den in der Zeile gefundenen Schlüsseltyp. Der Ausdruck stimmt mit allem vom Anfang jeder Eingabezeile bis einschließlich einem der gültigen Schlüsseltypen überein.
Antwort2
sed -i 's/your_string//g' filename
Sie müssen wahrscheinlich einige Satzzeichen in Ihrer Zeichenfolge maskieren.