Список всех подключенных сессий SSH?
Я просто SSH’d в корень, а затем SSH’d снова в корень на той же машине. Таким образом, у меня есть два открытых окна SSH’d в root на моей удаленной машине.
Из оболочки, как я могу увидеть список этих двух сессий?
who или w ; who -a для дополнительной информации.
Эти команды просто показывают все сеансы входа в систему на терминальном устройстве. Сеанс SSH будет на псевдо-терминале slave ( pts ), как показано в TTY столбце, но не все соединения pts являются сеансами SSH. Например, программы, которые создают псевдо-терминальное устройство, такое как xterm или, screen будут отображаться как pts . См. Разница между pts и tty для лучшего описания различных значений, найденных в TTY столбце. Кроме того, этот подход не покажет никому, кто вошел в сеанс SFTP, поскольку сеансы SFTP не являются сеансами входа в оболочку.
Я не знаю ни одного способа явно показать все сессии SSH. Вы можете вывести эту информацию, читая регистрационную информацию из utmp / wtmp через инструмент , как last , w или , who как я только что описал, или с помощью сетевых инструментов , таких как @sebelk , описанного в их ответе , чтобы найти открытые соединения TCP на порт 22 (или где ваш SSH демон (ы) слушает / слушает).
Третий подход, который вы можете использовать, — это анализ выходных данных журнала от демона SSH. В зависимости от дистрибутива вашей ОС, дистрибутива SSH, конфигурации и т. Д. Выходные данные журнала могут находиться в разных местах. На коробке RHEL 6 я нашел логи /var/log/sshd.log . На коробке RHEL 7, а также на коробке Arch Linux мне нужно было использовать journalctl -u sshd для просмотра журналов. Некоторые системы могут выводить журналы SSH в системный журнал. Ваши журналы могут быть в этих местах или в другом месте. Вот пример того, что вы можете увидеть:
Журналы показывают, когда сеансы открываются и закрываются, кому принадлежит сеанс, откуда пользователь подключается и многое другое. Тем не менее, вам придется много анализировать, если вы хотите получить это из простого, понятного человеку журнала событий в список активных в данный момент сеансов, и он все еще, вероятно, не будет точным, когда вы закончили синтаксический анализ, так как журналы на самом деле не содержат достаточно информации, чтобы определить, какие сеансы все еще активны — вы, по сути, просто догадываетесь. Единственное преимущество, которое вы получаете, используя эти журналы, состоит в том, что информация поступает непосредственно из SSHD, а не из вторичного источника, как другие методы.
Я рекомендую просто использовать w . В большинстве случаев это даст вам необходимую информацию.
Как получить список всех пользователей, которые могут получить доступ к серверу через ssh?
Как я могу получить список всех пользователей, которые могут подключиться по ssh к серверу через ssh username@server.domain ?
Обратите внимание, что мне известен этот вопрос , и это не делаю то, что я хочу!
Если это помогает, сервер имеет так много пользователей в стольких разных группах, а в домашнем каталоге есть несколько групповых каталогов и много пользовательских каталогов в этих групповых каталогах.
Отредактировано:
Обратите внимание, что результат, который я получаю из /etc/passwd , не тот, который я хочу, а следующий:
Этот список не даже не включать мое собственное имя пользователя! не говоря уже о других 1000 пользователей.
Отредактировано 2:
Так что я немного поболтал с Яроном и вот еще немного информации о системе:
2 ответа
Мой ответ тянет от ответов до этого stackoverflow вопроса.
Список всех "пользователей"
Я ожидал, что будет способ, которым я мог просто сказать, показать мне всех пользователей, которые могут ssh на мой сервер.
То, что я не понял, — то, что нет различия между людьми-пользователями и системой — "пользователи", поэтому в то время как можно перечислить всех пользователей с этой командой, это, вероятно, намного длиннее, чем Вы были expecting/hoping-for:
Показ всех пользователей с допустимой оболочкой
Если пользователи окружают, установлен на /etc/false затем они не могут войти в систему, таким образом, это обрезает вниз список возможных пользователей SSH:
Но это — все еще довольно большой список.
У пользователей, которые имеют на самом деле, есть доступ
Если у пользователя нет действительного пароля, который мог бы быть признаком, что они не могут войти в систему.
/etc/shadow файл содержит зашифрованные пароли, a"!" или "*" в 2-м столбце этого файла означает, что никакой пароль не установлен. Мы можем фильтровать тех, которые для нового (вероятно, короче) списком пользователей, которые имеют действительный пароль:
(Примечание: та команда могла быть добита большего успеха — не стесняются обновлять мой ответ),
Единственные другие учетные записи, которые не покрыты этим, были бы то, где у них есть ssh, включают их учетную запись пользователя, таким образом, необходимо также посмотреть на пользователей, которые имеют домашнюю папку:
Ограничение доступа
Хорошо — поэтому теперь у меня есть несколько ограниченный список — и я хочу удалить доступ для нескольких учетных записей.
Ответ @Yaron описывает это более подробно (как делает это), но кратко; /etc/ssh/sshd_config файл говорит, какие учетные записи могут ssh, и если Вы устанавливаете AllowUsers там затем другие пользователи будут ограничены — таким образом, можно будет отредактировать тот файл, чтобы быть явными о том, кто Вы хотите позволить входить в систему:
И добавьте высказывание строки
Наконец перезапустите ssh сервис
(в зависимости от Вашей системы — посмотрите это для сервисного перезапуска в других системах),
Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 71ac28b1bc6d9974 • Your IP : 82.102.23.104 • Performance & security by Cloudflare