Connessione SSH con Ruby senza nome utente usando `autorized_keys`
-
12-11-2019 - |
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?
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"`