Linux посмотреть ssh сессии

Содержание
  1. Linux и Windows: помощь админам и пользователям
  2. Администрируем и настраиваем Windows, Linux.
  3. 4 способа определить кто залогинен в Linux
  4. 1. Получаем список пользователей и команды, используемые ими с помощью команды w
  5. 2. Получаем список пользователей с помощью команды who
  6. 3. Узнаем под каким пользователем залогинены вы сами
  7. 4. Смотрим историю подключений пользователя
  8. Список всех подключенных сессий SSH?
  9. Как пользоваться SSH
  10. Базовый синтаксис
  11. Опции команды SSH
  12. Настройка сервера SSH
  13. Порт ssh
  14. Протокол SSH
  15. Рут доступ
  16. Доступ только определенного пользователя к SSH
  17. Выполнение X11 приложений
  18. Использование SSH
  19. Подключение к серверу
  20. Выполнить команду
  21. Выполнить локальный скрипт
  22. Бекап на удаленный сервер и восстановление
  23. Аутентификация без пароля
  24. Взять пароль из локального файла
  25. Изменить приветствие SSH
  26. Смотрим неудачные попытки входа SSH
  27. Передача файлов по SSH
  28. Запуск графических приложений по ssh
  29. Завершение сессии SSH
  30. Туннели SSH
  31. Выводы

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

4 способа определить кто залогинен в Linux

Если вы системный администратор, вы в любой момент времени можете захотеть узнать кто залогинен на вашем Linux сервере. Несомневаюсь что вам известен способ, который позволяет вам узнать это, но знаете ли вы все их и используете самый удобный? В этой статье мы рассмотрим 4 возможных способа.

1. Получаем список пользователей и команды, используемые ими с помощью команды w

Команда w используется для получения списка залогиненных пользователей и выполняемых ими команд. Вывод команды w содержит следующие колонки:[cut]

  • Имя пользователя
  • Номер tty
  • Адрес, с которого произошло подключение
  • Время подключения
  • Время бездействия
  • Время, затраченное всеми процессами в данном сеансе (JCPU)
  • Время, потраченное текущим процессом (PCPU)
  • Команда, выполняемая пользователем

Дополнительно могут быть использованы следующие опции:

  • -h игнорировать информацию заголовка
  • -u отображать текущую загрузку
  • -s Удалить из вывода JCPU, PCPU, и время подключения

2. Получаем список пользователей с помощью команды who

Команда who используется для получения списка пользователей, залогиненных в системе. В выводе находятся следующие колонки: имя пользователя, номер tty, дата и время, адрес подключения.

Для получения отсортированного списка используем команду:

3. Узнаем под каким пользователем залогинены вы сами

Команда whoami сообщит вам информацию о том, под какой учетной записью вы залогинены в системе. Полезно использовать с похмелья

whoami дает такую же информацию, как и команда id -un

4. Смотрим историю подключений пользователя

Команда last покажет вам историю подключений для определенного пользователя. Если в качестве аргумента не указан логин какого либо пользователя, отобразится история для всех пользователей. Данная информация берется из файла /var/log/wtmp. В выводе присутствуют следующие колонки:

  • Имя пользователя
  • Номер Tty
  • Время и дата подключения
  • Время отключения
  • Общее время работы сеанса

Постовой

Не хватает фантазии сочинить собственный текст, или просто нет времени? Вам определенно требуется копирайтер, который сделает для вас качественный уникальный материал.

Качественные объективы для фотоаппаратов. Практические все виды объективов по низким ценам.

Источник

Список всех подключенных сессий 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 не являются сеансами входа в оболочку.

Читайте также:  Можно ли крякнуть лицензионную windows 10

Я не знаю ни одного способа явно показать все сессии 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 — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.

В этой инструкции мы рассмотрим как пользоваться ssh, а также ее возможности, о которых вы даже не знали. Скорее всего, вы уже знаете как подключиться к серверу по ssh, но у этой утилиты есть еще много возможностей, таких как передача файлов ssh, подключение без пароля или выполнение скрипта на удаленном сервере. Все это мы и рассмотрим далее в статье. Но начнем с самых основ.

Базовый синтаксис

Синтаксис команды выглядит следующим образом:

$ ssh [опции] имя пользователя @ сервер [команда]

Важно заметить что ssh может работать по двум версиям протокола. Версии 1 и 2. Понятное дело, что версия 2 лучше и поддерживает больше типов шифрования и аутентификации. Больше в этой статье об отличиях протоколов мы говорить не будем и я буду подразумевать что вы используете версию 2.

Опции команды SSH

Теперь давайте рассмотрим самые основные опции команды ssh:

  • f — перевести ssh в фоновый режим;
  • g — разрешить удаленным машинам обращаться к локальным портам;
  • l — имя пользователя в системе;
  • n — перенаправить стандартный вывод в /dev/null;
  • p — порт ssh на удаленной машине;
  • q — не показывать сообщения об ошибках;
  • v — режим отладки;
  • x — отключить перенаправление X11;
  • X — включить перенаправление Х11;
  • C — включить сжатие.

Это далеко не все опции утилиты, остальные выходят за рамки данной статьи. Многие настройки работы ssh можно изменять через конфигурационный файл

Читайте также:  Когда будет обновление до windows 10 nokia lumia 930

/.ssh/config но здесь мы это тоже подробно рассматривать не будем.

Настройка сервера SSH

Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

Порт ssh

По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:

Поменяйте значение порта на нужное.

Протокол SSH

По умолчанию сервер ssh может работать по двум версиям протокола, для совместимости. Чтобы использовать только протокол версии два раскомментируйте строчку:

И приведите ее к такому виду:

Рут доступ

По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

Доступ только определенного пользователя к SSH

Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого добавьте строчки:

AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3

Здесь User1 и Group1 — пользователь и группа к которым нужно разрешить доступ.

Выполнение X11 приложений

Не все знают но есть возможность использовать ssh для запуска полноценных X11 приложений. Об этом мы поговорим ниже, но чтобы все заработало необходимо разрешить эту возможность на стороне сервера, добавьте такую строчку:

Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:

service sshd restart

Использование SSH

Основная цель этой статьи — показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному — возможности ssh.

Подключение к серверу

Чтобы просто подключиться к серверу по SSH используйте такую команду:

Выполнить команду

Мы привыкли подключаться к удаленному серверу, а уже потом выполнять нужные команды, но на самом деле утилита ssh позволяет сразу выполнить нужную команду без открытия терминала удаленной машины. Например:

ssh user@host ls

Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

Выполнить локальный скрипт

Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

ssh user@host ‘bash -s’

Бекап на удаленный сервер и восстановление

Мы можем сохранять бекэп диска сразу на удаленном сервере с помощью ssh. Перенаправим вывод dd с помощью оператора перенаправления |, затем сохраним его на той стороне в файл:

sudo dd if=/dev/sda | ssh user@host ‘dd of=sda.img’

Теперь чтобы восстановить состояние диска из сделанной копии выполните:

ssh user@host ‘dd if=sda.img’ | dd of=/dev/sda

Здесь и выше /dev/sda имя файла вашего жесткого диска.

Аутентификация без пароля

Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации — с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.

Настроить такое поведение очень легко. Сначала создайте ключ командой:

ssh-keygen -t rsa

Во время создания ключа нужно будет ответить на несколько вопросов, расположение оставляйте по умолчанию, если хотите подключаться без пароля — поле Passphare тоже оставьте пустым.

Затем отправляем ключ на сервер:

Вот и все. Теперь при попытке подключится к этому серверу пароль запрашиваться не будет, а стазу произойдет подключение. Смотрите подробнее создание открытого ключа для ssh.

Взять пароль из локального файла

Напомню, что хранить пароли в обычных текстовых файлах небезопасно, но если хотите, то да — возможно. Для этого используется оператор перенаправления ввода Bash:

Читайте также:  Резервная копия windows акронис

Изменить приветствие SSH

При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

Смотрим неудачные попытки входа SSH

Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

cat /var/log/secure | grep «Failed password for»

Передача файлов по SSH

Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

$ scp /адрес/локального/файла пользователь@ хост: адрес/папки

Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

cat localfile | ssh user@host «cat > remotefile»

ssh user@host «cat > remotefile»

Пойдем еще дальше, вы можете сжимать файлы перед передачей с помощью tar, а потом их сразу же на лету распаковывать:

tar czf — /home/user/file | ssh user@host tar -xvzf -C /home/remoteuser/

Такое копирование файлов ssh позволяет отправлять сразу целые папки.

Запуск графических приложений по ssh

Если вам нужно запустить то или иное графическое приложение на удаленной машине необязательно для этого использовать VNC, вы можете обойтись возможностями ssh. Программа будет выполняться на стороне сервера, а вам будет лишь транслироваться окно, чтобы вы могли сделать все что нужно. Причем все данные шифруются. Чтобы эта функция работала, нужно включить ее поддержку на стороне сервера.

Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

ssh -XC user@remotehost «eclipse»

Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С — сжатие данных.

Завершение сессии SSH

Если вы использовали SSH с нестабильным интернетом, когда соединение время от времени рвется, то вам уже, наверное, надоело закрывать терминал, потому что иначе, на первый взгляд, сеанс никак не прекратить. Когда соединение с удаленным сервером разорвано вы не можете ввести никакую команду и сочетания клавиш Ctrl+C, Ctrl+Z, Ctrl+D не работают. И не будут работать поскольку клиент пытается отправить эти команды на сервер. Но есть решение — Escape последовательности. Чтобы активировать их поддержку добавьте строку:

В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

Другие управляющие символы можно узнать нажав:

Туннели SSH

С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:

$ ssh -L локальный_порт :удаленный_адрес : удаленный_порт пользователь@сервер

Например, сделаем удалённую базу данных доступной локально на порту 5555. Для этого выполните подставив свои значения:

$ ssh -N -L 5555:127.0.0.1:3306 root@losst-1

Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт — 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:

$ ssh -N -R 5555:127.0.0.1:3306 root@losst-1

Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

Выводы

Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!

Источник

Оцените статью