Вопрос прост.
Какой сценарий я бы использовал для выключения компьютера в моей сети через ssh.
Обычно я бы пошел в командную строку и:
ssh desktop
delik@desktop's password:
delik@desktop:~$ sudo shutdown -P 0
Для включения я создал файл и написал:
wakeonlan xx:xx:xx:xx:xx:xx
И дал ему исполняемый бит
[ 117]. Чтобы включить его, достаточно двойного щелчка. Могу ли я сделать то же самое, чтобы выключить?
Предполагая, что пользователь, которого вы собираетесь использовать в remote.host, - это тот же пользователь, которого вы используете в local.host
Для этого вам необходимо сначала авторизовать ваш local.host для подключения к вашему удаленному .host без пароля.
Для этого вам необходимо: (как описано здесь)
sudo apt-get install ssh
На локальном хосте введите следующую команду:
ssh-keygen
Вы должны сохранить сгенерированный ключ в:
/home/yourusername/.ssh/id_rsa
Нажмите дважды Enter оставить пароль пустым.
Your identification has been saved in /home/yourusername/.ssh/id_rsa.
Your public key has been saved in /home/yourusername/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:xX:XX:xX:XX:XX:XX:XX:XX:XX:XX:XX yourusername@local-host
yourusername@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
yourusername@remote-host's password:
Now try logging into the machine, with "ssh remote-host", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Примечание: ssh-copy-id добавляет ключи к / home / удаленного хоста yourusername / .ssh / авторизованный_ключ
ssh remote-host
yourusername@remote.host:~$
Доступ к удаленному хосту без пароля. Успех!
Теперь вы должны иметь возможность выполнить отключение sudo -P 0 без пароля .
Таким образом, пользователь " yourusername " может выполнить команду отключения без запроса пароля.
Авторизуйтесь на удаленном хосте.
ssh remote.host
Выполнить:
sudo visudo
Запуск visudo приводит к редактированию /etc/sudoers.
Добавляем строку ниже к этому файлу.
yourusername ALL = NOPASSWD: /sbin/shutdown
Сделайте это, вернитесь на ваш local.host
Создайте новый пустой файл и вставьте эту строку, изменив имя удаленного хоста
ssh remote.host sudo shutdown -P 0
Сохраните и закройте его, перейдите к его Свойствам , перейдите к Разрешениям и отметьте , чтобы выполнить этот файл как программу
Вы можете использовать учетную запись пользователя с ключевым файлом вместо пароля (поэтому вам не нужно вводить пароль для входа в систему). Вы также можете дать пользователю «оболочку по умолчанию», которая будет не bash или sh, а «shutmedown.sh» или что-то вроде этого, которая будет исполнять ваш код завершения работы.