Как я мог отключить удаленный хост, в моей сети через ssh, с локальным хостом?

Вопрос прост.
Какой сценарий я бы использовал для выключения компьютера в моей сети через ssh.

Обычно я бы пошел в командную строку и:

ssh desktop

delik@desktop's password: 

delik@desktop:~$ sudo shutdown -P 0

Для включения я создал файл и написал:

wakeonlan xx:xx:xx:xx:xx:xx

И дал ему исполняемый бит

[ 117]. Чтобы включить его, достаточно двойного щелчка. Могу ли я сделать то же самое, чтобы выключить?

7
задан 21 September 2012 в 16:38

2 ответа

Предполагая, что пользователь, которого вы собираетесь использовать в remote.host, - это тот же пользователь, которого вы используете в local.host
Для этого вам необходимо сначала авторизовать ваш local.host для подключения к вашему удаленному .host без пароля.
Для этого вам необходимо: (как описано здесь)

Шаг 1: Установить ssh

sudo apt-get install ssh

Шаг 2: Создать открытый и закрытый ключи с помощью ssh-key -gen на локальном хосте

На локальном хосте введите следующую команду:

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

Шаг 3: Скопируйте открытый ключ на удаленный хост, используя ssh-copy-id

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 / авторизованный_ключ

Шаг 4. Вход на удаленный хост без ввода пароля

ssh remote-host
yourusername@remote.host:~$

Доступ к удаленному хосту без пароля. Успех!

Теперь вы должны иметь возможность выполнить отключение sudo -P 0 без пароля .

Измените / etc / sudoers на remote.host с помощью visudo

Таким образом, пользователь " yourusername " может выполнить команду отключения без запроса пароля.
Авторизуйтесь на удаленном хосте.

ssh remote.host

Выполнить:

sudo visudo

Запуск visudo приводит к редактированию /etc/sudoers.
Добавляем строку ниже к этому файлу.

yourusername ALL = NOPASSWD: /sbin/shutdown

Сделайте это, вернитесь на ваш local.host
Создайте новый пустой файл и вставьте эту строку, изменив имя удаленного хоста

ssh remote.host sudo shutdown -P 0

Сохраните и закройте его, перейдите к его Свойствам , перейдите к Разрешениям и отметьте , чтобы выполнить этот файл как программу

Сценарий готов!

0
ответ дан 21 September 2012 в 16:38

Вы можете использовать учетную запись пользователя с ключевым файлом вместо пароля (поэтому вам не нужно вводить пароль для входа в систему). Вы также можете дать пользователю «оболочку по умолчанию», которая будет не bash или sh, а «shutmedown.sh» или что-то вроде этого, которая будет исполнять ваш код завершения работы.

0
ответ дан 21 September 2012 в 16:38

Другие вопросы по тегам:

Похожие вопросы: