web-dev-qa-db-ja.com

sshを使用してネットワーク内のローカルホストでリモートホストをシャットダウンするにはどうすればよいですか?

質問は簡単です。
sshを使用してネットワーク内のコンピューターをシャットダウンするために使用する必要があるスクリプトは何ですか。

通常、私はコマンドラインに行き、:

ssh desktop

delik@desktop's password: 

delik@desktop:~$ Sudo shutdown -P 0

電源を入れるために、ファイルを作成して書きました:

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

そして、それに実行可能ビットを与えました

電源をオンにする方法は、ダブルクリックするだけです。シャットダウンするのと同じことができますか?

7
DeLiK

Remote.Hostで使用するユーザーがlocal.Hostで使用するユーザーと同じであると仮定します
そのためには、最初にlocal.Hostにパスワードなしでremote.Hostに接続することを許可する必要があります。
これを行うには、次の手順を実行する必要があります。 (ここで説明)

ステップ1:sshをインストールする

Sudo apt-get install ssh

ステップ2:local-Hostでssh-key-genを使用して公開鍵と秘密鍵を作成します

ローカルホストで、次のコマンドを入力します。

ssh-keygen

生成されたキーを次の場所に保存する必要があります。

/home/yourusername/.ssh/id_rsa

Enterキーを2回押して、パスフレーズを空のままにします。

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を使用して、公開鍵をremote-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/authorized_keyにキーを追加します

ステップ4:パスワードを入力せずにリモートホストにログインする

ssh remote-Host
[email protected]:~$

パスワードなしのリモートホストへのアクセス。成功!

これで パスワードなしでSudoシャットダウン-P 0を実行 できるようになりました。

Visudoを使用してremote.Hostの/ etc/sudoersを変更します

これにより、ユーザー「yourusername」はパスワードを要求せずにシャットダウンコマンドを実行できます。
リモートホストにログインします。

ssh remote.Host

実行:

Sudo visudo

Visudoを実行すると、/ etc/sudoersの編集につながります。
そのファイルに以下の行を追加します。

yourusername ALL = NOPASSWD: /sbin/shutdown

完了し、local.Hostに戻ります
新しい空のファイルを作成し、この行を貼り付けて、remote.Hostの名前を変更します

ssh remote.Host Sudo shutdown -P 0

保存して閉じ、Propertiesに移動してPermissionsにスライドし、ticこのプログラムをプログラムとして実行します

スクリプト完了!

8
DeLiK