Как организовать управление группой ПК: различия между версиями
Kekaloav (обсуждение | вклад) |
Kekaloav (обсуждение | вклад) |
||
Строка 9: | Строка 9: | ||
nmap -n --stats-every 1s -p 22,631 172.xx.xx.0/23 | grep -B 5 "631/tcp open" | grep -B 4 "22/tcp open" | grep 172 | sed 's/Nmap scan report for //' | grep -v Nmap > hosts.txt | nmap -n --stats-every 1s -p 22,631 172.xx.xx.0/23 | grep -B 5 "631/tcp open" | grep -B 4 "22/tcp open" | grep 172 | sed 's/Nmap scan report for //' | grep -v Nmap > hosts.txt | ||
</syntaxhighlight>hosts.txt - список имен | </syntaxhighlight>Здесь и далее hosts.txt - список адресов (или имен, если Вы уверены что ПК будут найдены по имени) компьютеров | ||
=== Установить ключи для root доступа по ssh === | === Установить ключи для root доступа по ssh === |
Версия 08:24, 9 декабря 2022
Найти Linux ПК в сети
Поиск осуществляется по наличию открытых портов 22 (ssh) и 631 (cups)
#!/bin/bash
nmap -n --stats-every 1s -p 22,631 172.xx.xx.0/23 | grep -B 5 "631/tcp open" | grep -B 4 "22/tcp open" | grep 172 | sed 's/Nmap scan report for //' | grep -v Nmap > hosts.txt
Здесь и далее hosts.txt - список адресов (или имен, если Вы уверены что ПК будут найдены по имени) компьютеров
Установить ключи для root доступа по ssh
Доступ по ssh c правами учетной записи администратора запрещен по умолчанию. Тем не менее доступ возможен по ключу. Это значит, что должен быть сгенерирован цифровой ключ (в нашем случае типа ed25519), состоящий из двух частей - открытой и закрытой. Открытую часть надо поместить в специальный файл на ПК, к которому осуществляетяся доступ. Открытая часть включает имя хоста. При подключении происходит сверка соотвествия открытой и закрытой части и имени подключаемого ПК, и при соответствии осуществляется доступ. Чтобы скопировать ключ нужно войти с правами root. Удаленно это не очень просто - комада su требует ввода пароля вручную. Приведенный скрипт решает проблему автоматизации копирования ключей.
#!/bin/bash
ssh-keygen -t ed25519
SSHKEY=`cat ${HOME}/.ssh/ed_id22519.pub`
ROOTPASS="12345678"
USER="user"
PASS="12345678"
for i in `cat hosts.txt`
do
(sleep 1;echo "${ROOTPASS}";sleep 1; echo "${SSHKEY}" >> /root/.ssh/autorized_hosts ; echo exit; sleep 1; echo exit) | sshpass -p ${USERPASS} ssh -tt -oStrictHostKeyChecking=no ${USER}@${i} su -
done
Поменять пароли (или другая команда для группы ПК)
при наличии ssh доступа по ключу к root
#!/bin/bash
USER="root"
PASS="12345678"
for i in $(cat hosts.txt)
do
ssh -oStrictHostKeyChecking=no root@$i 'chpasswd <<<"${USER}:${PASS}"'
#сюда можно добавить и другие команды, например создать пользователя
#ssh root@$i useradd student
#изменять пароль можно только командой сhpasswd, так как команда passwd требует ввода пароля вручную
#ssh root@$i 'chpasswd <<<"student:student"'
#можно также установить нужные программы
#ssh root@$i apt-get -y install yandex-browser veyon spherum
#ssh root@$i epm --auto play teams skype zoom
done