# Eteindre Mac à distance par SSH



## jerem87 (1 Juin 2009)

Bonjour à tous !

Je souhaiterais faire un petit script qui permettrait d'être un Mac à distance à l'aide de SSH.

Par le terminal, ça fonctionne sans problème, mais par script c'est une autre histoire, je n'ai jamais fait de script sur Mac avant celui là. 

A préalable j'ai généré une clé publique et une clé privée afin qu'il n'y est pas la fameuse question du mot de passe lorsque je me connecte en ssh :



> Lancez ssh-keygen (sur la machine local), et répondre par la touche "Entrée" à tout les questions.
> 
> Cela générera à la fois une clé publique et une clé privée. C'est la clé public qui nous intéresse ~/.ssh/id_rsa.pub .
> 
> ...


Tout ça ça fonctionne.

J'ai fais 2 scripts, un qui se trouve sur la machine qui va "contrôlé" l'extinction et l'autre qui se trouve sur la machine distance à "éteindre".

*Script 1 : shutdown.app (machine qui contrôle) :*



Au début j'avais pensé à ça :


```
#!/bin/sh ssh aurelie@192.168.10.11
#!/bin/sh ssh open /Users/aurelie/shutdown1.app
```

Ensuite à ça :


```
#!/bin/sh ssh aurelie@192.168.10.11
#!/ssh open /Users/aurelie/shutdown1.app
```
--> Ni l'un ni l'autre n'a l'air de fonctionner.

*Script 2 : shutdown1.app (machine à éteindre) :*


```
tell application "Finder" to shut down
```
--> Il fonctionne lorsque je le lance à la main sur la machine distance, mais je n'arrive pas à l'exécuter depuis le 1er script.

Merci beaucoup pour votre aide.

Jérémie.


----------



## Diablovic (1 Juin 2009)

la syntaxe de ton script 1 est fausse.

le "#!/bin/sh" ne doit être présent qu'à la première ligne du script. Il permet au mac de savoir avec quel executable il doit être exécuté (/bin/sh, /bin/bash, /bin/tcsh ...).

si c'était juste ça, ça donnerais un script du type

```
#!/bin/sh
ssh aurelie@192.168.10.11
ssh open /Users/aurelie/shutdown1.app
```

Mais ce script ne marchera pas non plus, à cause de l'utilisation de la commande ssh.
Si tu fais juste la commande "ssh aurelie@192.168.10.11", il ouvre une session, et il restera bloqué sur cette commande jusqu'à la fermeture de la session.
Quand à "ssh open /Users/aurelie/shutdown1.app", le mac va la refuser.
La documentation sur ssh (en faisait "man ssh" dans un terminal) indique (enfin, en moins abregé)

```
ssh [user@]hostname [command]
If command is specified, it is executed on the remote host instead of a login shell
```
Il faut utiliser "ssh aurelie@192.168.10.11 open /Users/aurelie/shutdown1.app"

On obtient donc

```
#!/bin/sh
ssh aurelie@192.168.10.11 open /Users/aurelie/shutdown1.app
```


----------



## tatouille (2 Juin 2009)

Bompi a ecrit un excelent commentaire il y a un peu de temps dans la section Unix et autres, si quelqu'un pouvait rappatrier ou fusionner cela serait pas mal


----------



## jerem87 (3 Juin 2009)

Merci beaucoup, j'ai donc fait :


```
tell application "Terminal"
    activate
    do script "ssh 192.168.10.11 -l aurelie 'open /Users/aurelie/shutdown1.app'"
end tell
```

Et ça fonctionne niquel.

J'ai encore une question, est-il possible de faire un Apple Script qui monte des "lecteurs réseau", un dossier partagé sur un autre Mac ?

Merci encore !

Jérémie.


----------

