Domanda

Ho autenticato un server utilizzando authorized_keys Push in modo da poter eseguire il comando ssh 192.168.1.101 dal mio sistema e potrebbe connettersi tramite server.

Ora, ho provato con la biblioteca, non ha funzionato per me

  Net::SSH.start("192.168.1.209",username) do |ssh|   @output=ssh.exec!("ls -l")  end

come, questo campo nome utente richiedeva. Voglio senza nome utente.

Quindi, ho provato questo

    system('ssh 192.168.1.209 "ls -l"') 

Esegue il comando per me. Ma voglio l'output in una variabile come @output Nel primo esempio. C'è qualche comando qualche gemma o modo in cui potrei ottenere la soluzione?

È stato utile?

Soluzione 2

È possibile passare i parametri in %x [] come segue:

1. dom = ‘www.ruby-rails.in‘
2. @whois = %x[whois #\{dom\}]

Altri suggerimenti

Qualsiasi connessione SSH richiede un nome utente. L'impostazione predefinita è il nome dell'account del sistema o qualunque cosa sia specificata in .ssh/config Per quell'host ti stai connettendo.

Il tuo nome utente attuale dovrebbe essere impostato come ENV['USER'] Se hai bisogno di accedervi.

Se sei curioso di sapere quale nome utente viene utilizzato per quella connessione, prova a scoprirlo ssh -v Qual è la modalità verbosa che spiega cosa sta succedendo.

I backquote funziona molto simili alla funzione "sistema" ma con una differenza importante. Il comando shell racchiuso tra i backquote viene eseguito con output standard come risultato.

Pertanto, la seguente dichiarazione dovrebbe eseguire SSH 192.168.1.209 "LS -l" e inserisce elenco di file di directory nella variabile @Output:

@output = `ssh 192.168.1.209 "ls -l"`
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top