Однажды мне нужно было используя rsync скопировать с сервера много данных к которым имел доступ только root пользователь, по этому я разрешил подключение root пользователю по ssh.
Читать далее «Подключение root по SSH в Ubuntu»Архивы меток:SSH
Настройка SSH на Cisco
В этой статье я напишу как настроить SSH на Cisco.
Подключимся к устройству через telnet или консольным кабелем и перейдем в привилегированный режим:
Читать далее «Настройка SSH на Cisco»Как решить на MacOS «REMOTE HOST IDENTIFICATION HAS CHANGED»
Однажды перенес IP адрес на другой сервер и после подключения к нему по SSH из MacOS увидел предупреждение и соответственно подключиться не удалось:
Читать далее «Как решить на MacOS «REMOTE HOST IDENTIFICATION HAS CHANGED»»Скрипт передачи файлов по SFTP в Windows
Приведу пример скрипта передачи файлов по SFTP в Windows.
Читать далее «Скрипт передачи файлов по SFTP в Windows»Настройка тайм-аута SSH сессий
Чтобы настроить тайм-аут SSH сессий, посмотрим где находится файл конфигурации SSH сервера:
sudo find / -name sshd_config
Откроем его в любом текстовом редакторе, например nano:
sudo nano /etc/ssh/sshd_config
Как отсоединить SSH пользователя
Допустим через SSH подключено несколько пользователей.
Сначала посмотрим список онлайн пользователей:
w
Допустим отобразилось следующая информация (где test — это логин пользователя):
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT test tty1 11:20 1:07 0.03s 0.03s -bash test pts/0 192.168.1.5 11:21 13.00s 0.02s 0.02s -bash test pts/1 192.168.1.3 11:21 0.00s 0.02s 0.00s w
tty1 — это клиент вошедший локально, то есть находится возле компьютера.
pts/1 — судя например по IP и WHAT, допустим что это мы, соответственно pts/0 это клиент которого мы хотим отсоединить.
Смотрим список процессов и их PID:
ps faux |grep sshd
У меня отобразилось:
root 946 0.0 0.5 65508 5368 ? Ss 12:00 0:00 /usr/sbin/sshd -D root 1147 0.0 0.6 92828 6920 ? Ss 12:01 0:00 \_ sshd: test [priv] test 1178 0.0 0.3 92828 3384 ? S 12:01 0:00 | \_ sshd: test@pts/0 root 1192 0.0 0.6 92828 6592 ? Ss 12:02 0:00 \_ sshd: test [priv] test 1223 0.0 0.3 92828 3532 ? S 12:02 0:00 \_ sshd: test@pts/1 test 1248 0.0 0.0 15468 956 pts/1 S+ 12:25 0:00 \_ grep --color=auto sshd
Находим test@pts/0 и соответственно 1178 — это нужный PID.
Завершаем процесс указав его ID, после чего пользователь сразу отсоединится:
sudo kill -9 1178
Смотрите также мои статьи:
Установка и настройка SSH
Настройка тайм-аута SSH сессий
Подключение к SSH с использованием ключей
Чтобы подключаться к SSH без ввода пароля, можно сгенерировать на локальном севере публичный и приватный ключи, публичный потом скопировать на удаленную машину, после чего пароль при подключении к ней не будет спрашиваться.
На локальной машине генерируем ключи:
sudo ssh-keygen -t rsa
Копируем публичный ключ на удаленный сервер:
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p PORT USER@HOST
Если возникает ошибка при копировании ключа, то можно вручную скопировать строку из id_rsa.pub на удаленный сервер в файл authorized_keys.
Указанные команды нужно выполнять от того пользователя, от которого будет выполнятся подключение.
Например если от root, то нужно перед двумя командами выше выполнить команду:
sudo -i
Убрать хост можно командой:
ssh-keygen -f "/home/user/.ssh/known_hosts" -R [HOST]:22
Смотрите также:
Установка и настройка SSH
Мониторинг количества клиентов секторной Ubiquiti по SSH из Zabbix
На тесте приведу пример получения количества клиентов подключенных к обычной секторной антенне Ubiquiti AirMax Rocket M5.
Получать данные будем через SSH.
Для проверки один раз подключимся к устройству (первый раз при подключении наберем yes и нажмем enter):
sudo -u zabbix ssh -p 22 admin@192.168.0.55
Теперь в Zabbix добавим элемент данных к шаблону или хосту, например с именем «Template Ubiquiti Rocket M5 Sector»:
Имя: любое Тип: SSH агент Ключ: ssh.run[clients,,22,utf8] Метод аутентификации: Пароль Имя пользователя: ИМЯ Пароль: ПАРОЛЬ Выполняемый скрипт: команда выполняемая на устройстве (смотрите ниже)
Пример команды отображаемой количество подключенных клиентов:
wstalist |grep "mac" |wc -l
Соответственно создадим график элементу данных, а также триггер:
Имя: На секторной антенне {HOST.NAME} > 40 клиентов Выражение: {Template Ubiquiti Rocket M5 Sector:ssh.run[clients,,22,utff8].last(#1)}>40
Смотрите также:
Настройка SSH проверок в Zabbix
Настройка SSH проверок в Zabbix
Понадобилось как-то для некоторых Linux серверов настроить SSH проверки, чтобы не устанавливать на них Zabbix-agent.
Сам Zabbix-server у меня установлен на Ubuntu Server.
Ниже по порядку опишу как настроить SSH проверки в Zabbix.
Авторизацию по SSH настроим по ключу вместо пароля, для этого остановим zabbix-agent и zabbix-server:
sudo service zabbix-agent stop sudo service zabbix-server stop
Создадим домашнюю директорию пользователя Zabbix (для хранения ssh ключей):
sudo usermod -m -d /home/zabbix zabbix sudo chown zabbix:zabbix /home/zabbix sudo chmod 700 /home/zabbix
Запустим обратно zabbix-agent и zabbix-server:
sudo service zabbix-agent start sudo service zabbix-server start
Откроем конфигурационный файл /etc/zabbix/zabbix_server.conf (в редакторе nano комбинация клавиш Ctrl+O и Enter означает сохранение, Ctrl+X выход):
sudo nano /etc/zabbix/zabbix_server.conf
Раскомментируем строку SSHKeyLocation и укажем путь к директории с ключами:
SSHKeyLocation=/home/zabbix/.ssh
Перезапустим zabbix-server:
sudo service zabbix-server restart
Генерируем ssh ключ:
sudo -u zabbix ssh-keygen -t rsa Нажмем Enter если предлагается путь /home/zabbix/.ssh/id_rsa На предложение зашифровать файл ключа нажмем Enter чтобы не шифровать его или введем два раза любой пароль (им будет зашифрован файл ключа и при подключении его придется указывать)
Скопируем сгенерированый ключ на сервер за которым будем наблюдать:
sudo -u zabbix ssh-copy-id -i /home/zabbix/.ssh/id_rsa.pub -p 22 root@192.168.0.55
Если возникает ошибка при копировании ключа, то можно вручную скопировать строку из id_rsa.pub на удаленный сервер в файл authorized_keys.
И попробуем подключиться к удаленному серверу без ввода пароля командой:
sudo -u zabbix ssh -p 22 root@192.168.0.55
Теперь в Zabbix добавим элемент данных к шаблону или хосту:
Имя: любое
Тип: SSH агент
Ключ: ssh.run[описание,ip,порт,кодировка] (например ssh.run[cpu,192.168.0.55,22,utf8]
Метод аутентификации: Публичный ключ
Имя пользователя (на удаленном хосте): root
Файл публичного ключа: id_rsa.pub
Файл приватного ключа: id_rsa
Фраза-пароль ключа: оставим пустым если не шифровали ключ паролем
Выполняемый скрипт: команда выполняемая на удаленном сервер, примеры ниже
Приведу ниже пример команд для Linux которые можно выполнить и получить различную информацию.
Загрузка процессора за 1мин/5мин/15мин:
cat /proc/loadavg |cut -d " " -f1 cat /proc/loadavg |cut -d " " -f2 cat /proc/loadavg |cut -d " " -f3
Количество текущих запущенных процессов указанной программы:
pgrep apache2|wc -l pgrep -c sshd
Свободное пространство в точке монтирования «/» (в мегабайтах):
df -m|grep "/$"|awk '{print $4}'
Занятое пространство в точке монтирования «/» (в процентах):
df|grep "/$"|awk '{print $5}'|tr -d "%"
Получено байт на сетевой интерфейс eth0:
cat /proc/net/dev|grep eth0|awk '{print $2}'
Отправлено байт на сетевой интерфейс eth0:
cat /proc/net/dev|grep eth0|awk '{print $10}'
Количество свободной оперативной памяти:
free |grep "Память:"|awk '{print $4}' free |grep "Mem:"|awk '{print $4}'
Смотрите также:
Подключение к SSH с использованием ключей
Как изменить порт SSH в Ubuntu
На тесте изменю порт SSH в Ubuntu Server 14.0.4 LTS и Ubuntu Server 16.0.4 LTS.
Откроем конфигурацию SSH например в текстовом редакторе nano (в nano клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):
sudo nano /etc/ssh/sshd_config
Найдем строчку «Port 22» и изменим её например на «Port 58222«.
Чтобы применить изменения перезапустим ssh (на разных системах он может перезагружаться по разному, по этому приведу список возможных команд):
sudo service ssh restart sudo /etc/init.d/ssh restart sudo /etc/init.d/sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной, по этому не отключаясь для проверки попробуем подключиться по новому порту, если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 58222 наш новый порт):
sudo iptables -A INPUT -p tcp --dport 58222 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 58222 -j ACCEPT
Если все ок, подключаемся через новый порт и можем удалить старое правило iptables, например так:
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Пример команды для подключения из Linux к SSH по нестандартному порту:
ssh -p 58222 user@192.168.0.2
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно так:
netstat -tulpan | grep ssh