Mir ist also bewusst, dass ich die Kennwortauthentifizierung über SSH deaktivieren kann, indem ich sie in /etc/ssh/sshd_config
ändere . Ich möchte sicherstellen, dass SSH-Anmeldungen für jeden Benutzer nur über eine Schlüsseldatei erfolgen können.PasswordAuthentication Yes
PasswordAuthentication no
Gibt es einen schönen Einzeiler-Befehl, um diese Option festzulegen?
Antwort1
Ich habe dies erfolgreich getestet:
sudo sed -E -i 's|^#?(PasswordAuthentication)\s.*|\1 no|' /etc/ssh/sshd_config
if ! grep '^PasswordAuthentication\s' /etc/ssh/sshd_config; then echo 'PasswordAuthentication no' |sudo tee -a /etc/ssh/sshd_config; fi
Dadurch wird sed
die Datei direkt bearbeitet. Zusätzlich zum Ersetzen aller folgenden Elemente PasswordAuthentication
durch no
wird der Kommentar am Zeilenanfang entfernt, der unter Ubuntu standardmäßig vorhanden ist. Wenn dieser Befehl ein zweites oder drittes Mal ausgeführt wird, werden keine weiteren Änderungen an der Datei vorgenommen.
Die zweite Zeile fügt der Datei die Konfigurationsoption hinzu, für den Fall, dass sie irgendwie gelöscht wurde.