По умолчанию в убунту пользователю root запрещен вход через ssh. Для открытия доступа нужно выполнить следующие действия:
Архив метки: ssh
🔐 Настройка входа по SSH без пароля для нескольких удаленных серверов с помощью скрипта
Создайте новый ключ SSH на Linux
# ssh-keygen

Создание скрипта bash для нескольких удаленных входов
Затем создайте скрипт, который поможет скопировать открытый ключ на несколько удаленных хостов Linux.
# vim ~/.bin/ssh-copy.sh
#!/bin/bash
USER_NAME="root"
HOST_FILE="/root/hosts"
ERROR_FILE="/tmp/ssh-copy_error.txt"
PUBLIC_KEY_FILE="$1"
if [ ! -f $PUBLIC_KEY_FILE ]; then
echo "File '$PUBLIC_KEY_FILE' не найден!"
exit 1
fi
if [ ! -f $HOST_FILE ]; then
echo "File '$HOST_FILE' не найден!"
exit 2
fi
for IP in `cat $HOST_FILE`; do
ssh-copy-id -i $PUBLIC_KEY_FILE $USER_NAME@$IP 2>$ERROR_FILE
RESULT=$?
if [ $RESULT -eq 0 ]; then
echo ""
echo "Открытый ключ успешно скопирован на $IP"
echo ""
else
echo "$(cat $ERROR_FILE)"
echo
exit 3
fi
echo ""
done
Сохраните файл и закройте его.
Затем сделайте скрипт исполняемым с помощью команды chmod, как показано далее:
# chmod +x ssh-copy.sh
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub
После запуска ssh-agent добавьте к нему свой закрытый ключ следующим образом:
# eval "$(ssh-agent -s)" # ssh-add ~/.ssh/prod_rsa
Вход на удаленный сервер Linux без пароля
Теперь вы можете войти на любой из своих удаленных хостов, не вводя пароль для аутентификации пользователя SSH.
Таким образом, вы можете автоматизировать межсерверные процессы.
# ssh root@10.2.32.12
Если у вас есть какие-либо особые возможности для улучшения скрипта, сообщите нам об этом через форму обратной связи ниже.
Запуск команд или скрипта через SSH
Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды/скрипты из одной рабочей станции Linux на другой удаленной Linux машине. Рассмотрим практические примеры использования мощного инструмента SSH в администрировании Linux.
Запуск команд через SSH
Если вы хотите удаленно запустить какую-либо команду на сервере через SSH, то нет ничего проще. Давайте рассмотрим пару примеров.
Узнайте аптайм удаленного сервера:
ssh root@10.5.5.1 'uptime'
Узнать проходит ли пинг на удаленном сервере до google DNS:
ssh root@10.5.5.1 'ping 8.8.8.8 -c 5'
Перезагрузить удаленную машину:
ssh root@10.5.5.1 'reboot'
Запуск нескольких команд через SSH
В большинстве случаем недостаточно удаленно запустить только одну команду по SSH. Намного чаще необходимо отправить сразу несколько команд на удаленный сервер, например, для сбора информации и получить результат обратно.
Запустить несколько команд на удаленном хосте по SSH:
ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'
можно и так:
ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР << EOF
КОМАНДА1
КОМАНДА2
КОМАНДА3
EOF
Практические примеры использования SSH
Узнайте аптайм и сколько свободного места на диске:
ssh root@10.5.5.1 'uptime; df -h'
Сколько используется памяти и среднюю нагрузку:
ssh root@10.5.5.1 'free -m ; cat /proc/loadavg'
Узнать версию ядра, количество ядер CPU и сколько всего RAM:
ssh root@10.5.5.1 << EOF
uname -a
lscpu | grep "^CPU(s)"
grep -i memtotal /proc/meminfo
EOF
SSH: Запуск Bash Скрипта
Также бывает ситуация, когда на Linux сервере лежит какой-либо скрипт и его необходимо запустить по SSH на другом Linux сервере.
Основная идея заключается в том, чтобы подключиться на удаленный Linux сервер, дать скрипту выполнить свою работу и получить результат, при этом не копируя сам скрипт на удаленный сервер.
Эта задаче безусловно может быть выполнена и при этом довольно просто.
ssh root@10.5.5.1 'bash -s' < script.sh
Что если вы хотите выполнить сценарий с аргументом.
ssh root@10.5.5.1 'bash -s' < script.sh --argument
или
ssh root@10.5.5.1 'bash -s' < "script.sh --argument"
Если требуются привилегии sudo, то команда примет вид:
ssh root@10.5.5.1 'echo "passwords" | sudo -Sv && bash -s' < script.sh
- password — пароль для пользователя root на удаленной машине.
- script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.
🐍 Брутим SSH удаленного сервера
Брутим SSH удаленного сервера
Для брута (атаки перебором паролей) будем использовать инструмент Hydra, который входит в состав дистрибутива Kali Linux. SSH присутствует на любом сервере Linux или Unix и, как правило, является основным способом использования администраторами для доступа к своим системам и управления ими.
Предупреждение: Hydra является инструментом для атак
«Используйте его только в собственных системах и сетях, если у вас нет письменного разрешения владельца. В противном случае, это незаконно.»
Для реализации атаки используем команду:
# hydra -s 22 -l root -P /usr/share/wordlists/fasttrack.txt 192.168.1.1 -t 4 ssh
Теперь разберем ее:
–s – Флаг указывает на порт. Стоит отметить, что администраторы могут заменить дефолтный 22 порт для работы службы ssh, чтобы узнать на каком порту работает служба необходимо произвести первоначальное сканирование цели с помощью инструмента Nmap. О том как это сделать мы писали ранее в статье.
–l – флаг указывает на логин, в нашем примере мы используем root и admin. (можем указать здесь ссылку на словарь)
–P – флаг указывает на пароль, в нашем случае мы используем словарик fasttrack.txt из дистрибутива kali, который располагается в директории /usr/share/wordlists/
Стоит отметить, что для эффективного проведения атаки брутфорсом стоит должное внимание уделить подготовки словаря, а именно: учесть географические и лингвистические особенности, включить в словарь название компании, названия ее дочерних предприятий, названия работающих сервисов и приложений, фамилии работников и т. д.
192.168.1.1 – ip адресс цели, так как используемая нами цель имеет белый ip, он замазан
–t — флаг указывает на число одновременно используемых потоков. Укажем 4
ssh — используемый протокол
По результатам работы команды видим, что пароли из словаря не подошли для логинов admin и root


Выводы
Hydra является удобным и простым инструментом для тестирования парольной политики SSH.
Инструмент способен просматривать массивные списки имен пользователей, паролей и целей для проверки, если вы или пользователь используете потенциально уязвимый пароль.
Hydra имеет гибкую настройку, используя свои многочисленные флаги для ряда всевозможных ситуаций.
Для любого ибешника обеспечение безопасности паролей SSH должно быть главным приоритетом.
¯_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
Как включить SSH в Ubuntu 20.04
Secure Shell (SSH) — это сетевой протокол, используемый для безопасного соединения между клиентом и сервером. Каждое взаимодействие между сервером и клиентом шифруется.
В этой статье объясняется, как включить SSH на компьютере с Ubuntu.
Включение SSH позволит вам удаленно подключаться к вашей системе и выполнять административные задачи. Вы также сможете безопасно передавать файлы через scp и sftp. Читать
Копирование файлов c архивированием по SSH на лету.

Сегодня рассмотрим Копирование файлов c архивированием на лету по SSH протоколу, используя TAR.
Синтаксис команды tar
tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t --list | --test-label | u --update | x --extract --get [options] [pathname ...]
Копирование файлов через SSH c архивированием на лету.
Выполним следующею команду:
cd /local/dir; tar cf - . | ssh server "cd /destination/dir; tar xf -"
Теперь разберем, что же происходит в коде:
cd /local/dir;– осуществляется переход к папке /local/dir, которая будет архивироваться;tar cf - .– утилита tar выполняет следующие операции:-cговорит о том, что нужно создать новый архив;
-fговорит о том, что используется архивный файл (или устройство);- парамерт
-говорит о том, что tar должен использовать стандартный вывод, а не записывать данные в файл - параметр . говорит о том, что архивироваться будет папка, в которой находится пользователь, и из которой выполняется команда tar (в данном случае это папка
/local/dirиз п.1)
| sshозначает, что вывод утилиты tar будет передан в ssh-исполняемую следом команду;serverобычно имеет вид [имя_пользователя]@[адрес_сервера] и означает, что команда будет выполнена на удаленном сервере;"cd /destination/dir; tar xf -"– в кавычки заключена последовательность команд для выполнения на удаленном сервере и в SSH вводится именно в кавычках, разберем ее в следующем пункте;cd /destination/dir;– осуществляется переход к папке, куда будут разархивированы файлы;tar xf -утилита tar выполняет следующие операции:-xговорит о том, что будет происходить распаковка;-fговорит о том, что используется архивный файл (или устройство);- параметр
-говорит о том, что tar должен использовать не файл, а стандартный вывод.
Также можно использовать дополнительно следующие параметры с tar:
- параметр
-vсообщает tar действовать вербально, т.е. отображая, либо получая исчерпывающую информацию о файлах в процессе обработки; -z– параметр сообщает tar использовать программу сжатия, когда работа будет вестись с файлами;
или-j– параметр сообщает tar выполнять чтение или запись архивов, используя компрессор bzip2.
[endtxt]
RSS
