Come si usa ssh in uno script di shell?
Domanda
Quando provo a utilizzare un file ssh comando in uno script di shell, il comando sta semplicemente lì.Hai un esempio di come utilizzare ssh in uno script di shell?
Soluzione
Dipende da cosa vuoi fare e da come lo usi.Se vuoi semplicemente eseguire un comando in remoto e in sicurezza su un'altra macchina, usa semplicemente
ssh user@host command
Per esempio
ssh user@host ls
Per fare ciò in sicurezza è necessario chiedere all'utente la password durante il runtime o impostare le chiavi sull'host remoto.
Altri suggerimenti
Innanzitutto, devi assicurarti di aver impostato senza password (accesso con chiave pubblica).Esistono almeno due versioni di ssh con formati di file di configurazione leggermente diversi.Controlla il ssh manpage sul tuo sistema, consulta l'amministratore di sistema locale o vai su Come posso impostare l'autenticazione con chiave pubblica?.
Correre ssh in modalità batch (come all'interno di uno script di shell), è necessario passare un comando che si desidera venga eseguito.La sintassi è:
ssh host command
Se vuoi eseguire più di un comando contemporaneamente, usa virgolette e punto e virgola:
ssh host "command1; command2"
Le virgolette sono necessarie per proteggere il punto e virgola dall'interprete della shell.Se li escludessi, solo il primo comando verrebbe eseguito in remoto e tutto il resto verrebbe eseguito sul computer locale.
Puoi usare expect
comando per popolare le informazioni su nome utente/password.
Devi inserire la tua chiave pubblica SSH nel file ~/.ssh/authorized_keys
file sull'host remoto.Quindi sarai in grado di accedere tramite SSH a quell'host senza password.
In alternativa puoi usare ssh-agent
.Consiglierei di non memorizzare la password nello script.
Il modo più semplice è utilizzare un certificato per l'utente che esegue lo script.
Uno più complesso implica aggiungere allo stdin la password quando il comando di shell la richiede.Aspettatevi che le librerie Perl mostrino all'utente il prompt che chiede la password (se è interattivo, almeno), ci sono molte scelte.