Cosa potrebbe significare "roaming non consentito dal server" del client ssh?


25

Non riesco a collegarmi a un'istanza del server SSH e l'output dettagliato contiene debug1: Roaming not allowed by server. Si presentano i seguenti problemi prevedibili e evitabili:

  • Il roaming significa accedere ai servizi da diversi tipi di reti. Non riesco a capire cosa potrebbe significare nel contesto dell'output dettagliato di un sshclient 6.6.1 in esecuzione su Ubuntu 14.04.
  • Non è chiaro se si tratta di un errore o meno e se è se sta causando il fallimento dell'accesso o meno (Non voglio immergermi nel fallimento della connessione qui, però; nessuno del messaggio di output di sshBTW -> più problemi e tempi di attesa - sei stato avvisato!)
  • Ho fatto una query site:www.openssh.org roamingin google con risultati vuoti e le pagine man non contengono il termine. Non ha senso usarlo anche se è stato documentato a causa della sua ambiguità!

Cosa potrebbe significare il messaggio? Come potrei usarlo per eseguire il debug dell'ampia serie di altri errori altamente ambigui, non intuitivi e inutili e altri messaggi di SSH?

Risposte:


22

Non è proprio un messaggio di errore. È solo un messaggio di debug che ti dice che il server non accetta connessioni in roaming.

Apparentemente il roaming è apparentemente una funzionalità sperimentale aggiunta a OpenSSH nel 2009 o giù di lì. Lo scopo di questa funzione è consentire a un client ssh di disconnettersi da una sessione del server e quindi riprendere la sessione da un'altra posizione. Vedi qui per qualche discussione al riguardo. Googling ssh, roaming e "Martin Forssén" visualizzeranno altre pagine. Non sembra che sia stato sviluppato attivamente. Sospetto che gli sviluppatori di SSH non lo abbiano mai documentato perché è sperimentale e forse non finito.

Dall'ispezione del codice sorgente OpenSSH, esiste un'opzione sul lato client non documentata UseRoamingche può essere impostata su yes o no. L'aggiunta della riga "UseRoaming no" alla configurazione del client (normalmente il .ssh/configfile) dovrebbe sopprimere il messaggio di debug.

Non era ovvio per me il motivo per cui l' HostbasedAuthenticationimpostazione sul lato server avrebbe controllato se il server accetta o meno connessioni in roaming.

Aggiornamento: il supporto per il roaming client è apparentemente oggetto di un rapporto sull'esposizione alla vulnerabilità del computer, CVE-2016-0777 . Le versioni OpenSSH da 5.4 a 7.1p1 sono vulnerabili. Gli utenti devono eseguire l'aggiornamento a OpenSSH 7.1p2 o versioni successive. Gli utenti che non possono eseguire l'aggiornamento devono disabilitare il roaming nel client aggiungendo "UseRoaming no" alla loro configurazione client ssh. Vedi quanto segue:


7
Bene, ora si consiglia di impostarlo su no. mail-archive.com/misc@openbsd.org/msg144351.html
nikeee

1
@nikeee: ... e questa è una storia di avvertimento per non spedire mozziconi non funzionanti "innocui". (Si noti che è necessario impostarlo su nonelle impostazioni client , non sul server)
Piskvor

@Piskvor ma ci sono molti libri devops / webops che si propagano nel farlo .. Potrebbero sbagliarsi tutti? Oh.
Florian Heigl,

migliore spiegazione su questa configurazione in rete.
nils petersohn,

4

Il log delle modifiche di openssh 5.3 su CentOS6 ha una nota:

2009/06/27
     Aggiungi opzione client UseRoaming. Non fa ancora nulla ma lo farà
     controlla se il client tenta di utilizzare il roaming se abilitato su
     server. Da Martin Forssen.

3

@ ILMostro_7 chmod 600 authorized_keys ha funzionato bene per me.

Per il beneficio di chiunque altro che arriva qui googling "Roaming non consentito dal server" e utilizza un client Linux (Ubuntu), è possibile correggere tale avviso e quindi vedere: -

Agent admitted failure to sign using the key

La cura per questo è data a https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = commento. tu = tuo nome utente. [tippy tap] = humo [u] r? = premi il tasto Invio.

Spero che questo aiuti qualcuno tanto quanto questo Q&A mi ha già aiutato.


2

Questo messaggio di errore può essere visualizzato quando /etc/ssh/sshd_confignon è HostbasedAuthenticationimpostato yessu sul server.

Non ho idea del perché.

Un altro problema potrebbe essere:

Controllare le autorizzazioni sulla directory $ USER / .ssh che dovrebbe essere di proprietà dell'utente e essere chmod 700. Il file authorized_keys dovrebbe anche essere chmod 700 e di proprietà dell'utente


700? Perché dovresti aver bisogno di executebit sul file di chiavi?
ILMostro_7

Da dove viene la citazione? Si prega di aggiungere un riferimento.
Karl Richter,

ILMostro_7 non si trova sul file, si trova nella directory e per consentire all'utente di creare file nella directory, è necessario impostare il flag di esecuzione
IceyEC,

@IceyEC La risposta suggerisce 700 per authorized_keys .
mdrozdziel,

1
Dovrebbe essere chmod 400. Non ho idea del perché avrei mai voluto che quel file fosse eseguibile; e anche l'accesso in scrittura non è auspicabile il 99,999% delle volte. sshdcontrolla che la .sshcartella dell'utente non abbia accesso per gruppo e altro, e allo stesso modo per .ssh/authorized_keys. Pertanto, i permanenti nella risposta potrebbero funzionare, ma sono inutilmente ampi.
Piskvor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.