Можно ли узнать, какой ключ ssh был использован для доступа к учетной записи? У меня есть учетная запись на сервере, к которой у нескольких (доверенных!) Людей есть доступ через ssh. Я бы счел полезным узнать, кто вошел в систему и когда. У меня есть root-доступ, поэтому я могу просматривать журналы, но там, похоже, ничего нет. Есть ли какой-нибудь переключатель конфигурации, который позволит идентифицировать ключ в журналах?
ssh
logs
authentication
Loop Space
источник
источник
Ответы:
Если вы зайдете в конфигурационный файл sshd (обычно
/etc/ssh/sshd_config
) и измените директиву LogLevel на VERBOSE:... вы можете увидеть что-то подобное в журналах:
От
man sshd_config
:источник
sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;p;q}" /var/log/auth.log
sed
!q
директивы, хранить строки до конца файла ... нове линии становятся:sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;h};\${x;p}" /var/log/auth.log
. Определенно: я люблю сед!Несколько похоже на ответ @ user37161 . Если в общей учетной записи запущена настраиваемая оболочка, и оболочке необходимо знать, кто там находится, запуск сценария «оболочки» может оказаться недостаточным, поскольку информация в ней не передается в настраиваемую оболочку, кроме как через методы, которые могут привести к гонке. условия.
Вместо этого вы можете использовать
environment=
опцию в файле author_keys, чтобы установить переменную окружения, которую пользовательская оболочка сможет затем прочитать.Внутри вашего
.ssh/authorized_keys
файла добавьте каждую строку с набором переменных среды, как показано ниже:Затем пользовательская оболочка или любой из различных сценариев rc могут прочитать
$REMOTEUSER
переменную и предпринять соответствующие действия.Однако обратите внимание, что если вы используете стандартную оболочку, то вошедший в систему пользователь может изменить файл, чтобы помешать различным действиям. Кроме того, есть некоторые риски, позволяющие пользователям устанавливать такие переменные среды, как
LDPRELOAD
. Смотритеsshd_config
документацию оPermitUserEnvironment
.источник
Обновление 2016-10-31 о формате журнала
Несколько скриптов для правильной установки
Существует полнофункциональный метод для отслеживания / регистрации ssh-соединений по ключу с затратами на имя пользователя.
Введение
В дополнение к ответу @Caleb, я хотел бы поделиться некоторыми маленькими хитростями:
Примечание: я работаю над Debian 6.0 .
Установка сервера
Уровень SSHD Log
Сначала убедитесь, что конфигурация сервера имеет достаточный уровень ведения журнала:
В качестве пользователя root будет установлен активный подробный вход в систему:
Может быть написано:
или в сценарии sed :
Который может быть запущен как:
Чем активировать это:
Системный журнал: создание отпечатков пальцев для чтения пользователем
Теперь возьмите отпечатки пальцев в читаемом пользователем файле:
Попробуйте (повторно) войти в систему из ssh, чтобы убедиться, что новый файл
sshdusers.log
создан (и содержит что-то), затемиспользование
Это напечатает отпечаток текущего сеанса:
Плагин для
.bashrc
И, наконец, есть небольшая надстройка, которую нужно добавить в конец вашей
/etc/bash.bashrc
или пользователя.bashrc
:поэтому после повторного входа из SSH вы увидите:
Примечание. В некоторых случаях файл авторизованного ключа может иметь другое имя, например
$HOME/.ssh/authorized_keys2
...источник
file
для познания типов файлов. Но для человека , который просматривать файловые системы, имеющие расширения , например.pl
,.py
,.sh
,.awk
,.sed
,.tar.gz
, или даже.png.b64.gz
это полезно!Предположим, что пользователи "joe" и "deb" имеют доступ к учетной записи "x". Затем в аккаунте х
.ssh_authorized_keys
добавьте строки:Также в скрипте-обертке вы можете делать все, что захотите, регистрируя, какой закрытый ключ Джо использовал
ssh
в определенную дату и время с помощью команды$ORIGINAL_COMMAND
.источник
В fedora 20+ попытки входа и успехи сохраняются в /var/log/audit/audit.log. В этом журнале сохраняются попытки входа в систему (сбои и успехи), а отпечаток ключа, используемый для попытки входа в систему, сохраняется в поле с именем fp.
Вы можете сравнить отпечаток ключа вошедшего в систему с отпечатками в авторизованном ключе, выполнив его построчно через ssh-keygen -l
Подробное объяснение в отношении ssh-логинов и их безопасности и обнаружения вторжений находится здесь: http://vpathak.tumblr.com/post/121343814158/fedora-audit-log-with-love-from-russia
источник
Вы можете попробовать это:
источник
ssh-add -L | awk 'NR==FNR { k=$2;next } /^#/{next} $2==k { print $3;exit} $3==k {print $4;exit} ' - ~/.ssh/authorized_keys
В дополнение к @F. Хаури ответь, я готовлю полезную «подсказку для входа в систему».
Один дополнительный файл является необязательным ($ HOME / .ssh / users):
Эта часть должна быть вставлена в
/etc/profile
(для всех пользователей) или в~/.bashrc
Результат
источник