Как я могу увидеть, если пользователи вошли в систему через sftp?

11

Я запускаю файловый сервер linux для своего офиса, и мы используем SFTP для удаленных партнеров для входа и загрузки файлов. Есть ли способ узнать, есть ли какие-либо активные соединения или логины, чтобы я мог знать, когда безопасно выполнять техническое обслуживание на машине?

Поскольку машина почти постоянно обслуживает большие файлы, плановое обслуживание часто прерывается из-за загрузки

aVeRTRAC
источник

Ответы:

11

Вы также можете сделать:

ps -ef | grep '[s]shd' | grep -v ^root

который должен показывать любые сессии sshd (которые используются для sftp). Я заметил, что на моей машине моя командная строка sshd-процесса содержит «$ USER @ notty», что имеет смысл, поскольку я не вошел в систему с терминальной сессией. Вы могли бы затянуть вышеупомянутый grep:

ps -ef | grep '[s]shd:.*@notty' | grep -v ^root

Кстати: квадратные скобки в grep не должны отображать процесс 'grep sshd' в списке процессов. [s] shd соответствует sshd, но не соответствует самому себе. Сохраняет «grep -v grep»

Рич Гомолка
источник
4
В конечном итоге я использовал, netstat -atn | grep ':22'чтобы увидеть, существует ли открытый трафик на порту 22. Я также обнаружил, что могу проверить журналы sshd, расположенные по адресу /var/log/auth.log в моей системе, чтобы узнать, все ли пользователи, открывшие сессия была закрыта.
aVeRTRAC
2

Вы также можете попробовать fuser -u ssh/tcp

Uli
источник
1

Я думаю, что вы можете использовать программу командной строки, whoчтобы увидеть это. Я заметил некоторые сообщения, что это не работает, но я все еще думаю, что это может работать (возможно, это настройка ssh).

sftp построен поверх SSH . Это означает «Протокол передачи файлов SSH». И когда вы вошли в систему через ssh, 'who' включит вас в качестве зарегистрированного пользователя со своими выходными данными. Так что я ожидаю, что это будет работать и с активными сессиями sftp.

Это обсуждение 2008 года также предполагает, что для этого вы можете использовать netstat. Он также содержит предложение запустить «кто» через «часы», чтобы вы могли видеть обновления, ничего не делая.

Джеймс Т Снелл
источник
1
который не показывает пользователей, вошедших через ssh (я только что вошел с моего ноутбука и проверил).
aVeRTRAC
Это странно, это ДОЛЖНО быть местом ... Как я чертовски уверен, что оно сделало это для меня ... годами, годами и годами ...
Джеймс Т Снелл
Есть идеи, где будет эта настройка? Я попробовал это на общедоступном сервере в своей работе и получил то, что выглядит как реалистичные результаты с несколькими пользователями в списке.
aVeRTRAC
1
кто показывает, кто в данный момент запускает оболочку входа. В зависимости от того, что запускает пользователь, он может или не может считаться оболочкой входа. Серверная половина sftp этого не делает, поэтому сеансы sftp не отображаются в who.
Perkins