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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top