Portál AbcLinuxu, 10. května 2025 07:04
Dokázal by mi někdo poradit v této situaci:
mám pro roota několik ssh klíčů, jejichž veřejná část je jak známo uložena v /root/.ssh/authorized_keys.
Je možné nějak zjišťovat, kdy se kterým klíčem někdo na roota přihlásil? V auth.log se bohužel dočtu pouze to, že se přihlásil root, to je ale vše.
Někdo možná namítne, proč nemá každý administrátor svůj účet a nepoužívá sudo, to je ale pro naši situaci nevhodné řešení...
Řešení dotazu:
Docela by mě zajímali důvody proč se všichni musí hlásit pod jménem root... to neumí na klávesnici vyklikat jiný jméno?
No ale abych i poradil... obligátní "man sshd" ... sekce AUTHORIZED_KEYS FILE FORMAT... možností je více... víc napovědět už snad ani nejde
Docela by mě zajímali důvody proč se všichni musí hlásit pod jménem root... to neumí na klávesnici vyklikat jiný jméno?
K tomu se radši nebudu vyjadřovat, protože by to bylo házení hrachu na zeď...
No ale abych i poradil... obligátní "man sshd" ... sekce AUTHORIZED_KEYS FILE FORMAT... možností je více... víc napovědět už snad ani nejde
Chvíli jsem přemýšlel, co jsi měl na mysli. Jediné, co mne napadlo, je přidání command parametru ke klíči např. "date>>standa.log", což by bylo víceméně dobře použitelné. Měl jsi na mysli i jinou možnost?
Zkouším, co se dá, ale stále to není ono. Pokud použiji u klíče parametr command, který bude odkazovat na skript, který zaloguje kdo se přihlásil a spustí bash, tak to sice na první pohled funguje správně, ale bohužel potom nefunguje např. scp, právě proto, že jsem vnutil po přihlášení bash.
Měl by někdo nějaký nápad, co s tím?
Vyřešeno, přehlídnul jsem v manu SSH_ORIGINAL_COMMAND. Zkrácené řešení, pokud by to někoho zajímalo:
authorized_keys:
command="clogin Diego" ssh-dss AAAA...== diego@asterix
clogin:
#!/bin/bash
line="$(date +"%D %T") $1"
line='#'$line
echo $line >> ~/.bash_history
if [ -z "$SSH_ORIGINAL_COMMAND" ]; then
bash
else
eval $SSH_ORIGINAL_COMMAND
fi
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.