ssh non utilizza più ~ / .ssh / config


20

Non posso scrivere nulla di ciò che sono stato in grado di fare. Dopo un po 'di ricerche ho scoperto che non sta leggendo ssh config dalla mia home directory.

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

Quando sei su un computer identico di un amico, dove tutto funziona sembra così:

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

Ha funzionato prima e non sono a conoscenza di nulla che avrei potuto fare per causare questo problema. Come è potuto accadere e come risolverlo?

Nel collegamento di documentazione indicato da Tike afferma che

A causa del potenziale abuso, questo file deve disporre di autorizzazioni rigorose: lettura / scrittura per l'utente e non accessibile da altri.

Le mie autorizzazioni sono:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

Penso che il problema potrebbe essere con una confusione sulla home directory. Quando forzo il file di configurazione locale, inizia a funzionare e quindi inizia improvvisamente a leggere/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

Ma la mia home directory sembra essere ok:

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
Sono stato in grado di risolvere un problema. Ho copiato i contenuti di ~ / .ssh in /nas/kuba/.ssh. Quindi in realtà è un problema con ssh che usa improvvisamente la home directory sbagliata, che probabilmente non è davvero un problema di ssh.
Kuba,

Quell'ultimo commento sarebbe un'informazione molto utile da modificare nella domanda.
David Z,

L'output indica che stai utilizzando DSA. Vorrei trovare un modo per passare a RSA, in quanto è il migliore / più recente e credo che DSA sia rotto.
trysis,

3
@Kuba Per quanto ne so sshignora la HOMEvariabile d'ambiente. È una cattiva pratica ignorare HOME, sembra che sia quello che sshfa. Se non lo utilizza HOME, l'unica alternativa di cui sono a conoscenza è quella di cercarlo da uid. Se hai due voci /etc/passwdcon identico uid, entrambi finirebbero per usare lo stesso .ssh/configfile anche se avessero home diversa.
Kasperd,

1
@kasperd, dovrebbe essere una risposta. È l'unico pangrattato in questa pagina che mi ha aiutato con la mia situazione. Grazie!
Carattere jolly

Risposte:


14

Sembra che tu sia intrappolato tra ssh_config specifico dell'utente e globale.

Controlla le impostazioni di autorizzazione del file di configurazione ( ~/.ssh/config) del tuo utente e del tuo file di configurazione ( /etc/ssh/ssh_config) a livello di sistema per capire in maggiori dettagli.

Puoi leggere di più su questo qui . In pratica, tutti i file nella .sshdirectory basata sull'utente devono essere su 600 e il configfile su 644. È possibile impostare questo con i seguenti comandi nella directory home:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

Quindi capisco dal documento che prima dovrebbe leggere config dalla mia directory home, e poi dal globale (/ etc / ssh / ssh_config) La domanda è: perché sta omettendo la mia configurazione locale?
Kuba,

risposta aggiornata sopra
tike

Provai. Niente è cambiato. Ho aggiornato la mia domanda con maggiori dettagli.
Kuba,

se non hai cambiato drasticamente la domanda sopra durante la modifica: debug1: /Users/kuba/.ssh/config line 1: Applicazione delle opzioni per * debug1: /Users/kuba/.ssh/config line 39: Applicazione delle opzioni per bio la sua configurazione di lettura, e il jolly di configurazione sembra giocare un ruolo. Terrei il semplice file di configurazione da testare prima con la porta definita e il server dest.
tike

In realtà ho cambiato drasticamente la domanda al punto che probabilmente dovrei chiuderla. Sembra che ssh stia trattando un'altra directory come la mia cartella home. Qualcosa che non è né ~, né $ HOME.
Kuba,

3

controlla le autorizzazioni

ls -lsd ~/.ssh

e

ls -ls ~/.ssh/*

Se le autorizzazioni non sono valide, il client SSH non proverà a leggere da esso


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config sembra che io sia il proprietario di tutti loro
Kuba

@Kuba provare con ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh totale 80 drwx ------ 9 kuba 1029 306 1 luglio 16:33. drwx ------ + 42 kuba 1029 1428 1 luglio 16:33 .. -rw-r - r-- 1 kuba 1029 406 7 maggio 14:53 authorized_keys -rwx ------ 1 kuba 1029 1528 15 maggio 13:07 config -rwx ------ 1 kuba 1029 1675 7 maggio 14:53 id_rsa -rwx ------ 1 kuba 1029 406 7 maggio 14:53 id_rsa.pub -rw-r-- r-- 1 kuba 1029 16049 22 maggio 09:36 known_hosts
Kuba

@Sei sicuro, la tua directory utente di casa non si apre?
c4f4t0r,

2
Quel + laggiù ... non sono ACL? Potrebbe essere il colpevole?
Jorge Suárez de Lis,

0

Ho avuto lo stesso problema e sono stato in grado di risolverlo impostando il flag + x sul mio ~/.sshdir (0700), e impostando anche 0600 su ~/.ssh/config.


0

Per quello che vale, ho avuto lo stesso problema e l'ho risolto creando ssh per creare nuovamente la .sshcartella (basta rinominare sshed eseguire alcuni comandi ssh) e successivamente copiare i file necessari, con le autorizzazioni appropriate. (config con 600).

Apparentemente ssh diventa sospetto se la cartella .sshviene modificata in un modo che non approva ...


0

SSH non leggerà la configurazione locale se si trova su un filesystem montato su NFS. Vale la pena verificare perché tutte le autorizzazioni possono andare bene e SSH (almeno la versione 6.6) non ti darà alcuna indicazione del perché non sta leggendo la configurazione dell'utente. (Tuttavia, verrà letto da un volume NFS se si utilizza l' -Fopzione.)


0

Ho riscontrato lo stesso problema su MacOs. Osservando le informazioni di debug di un accesso manuale (ssh @), ho scoperto che apparentemente ssh pensava che la mia directory home fosse /srv/home/<userid>e stava cercando la .sshdirectory lì dentro, e ignorò quella in/Users/<userid>/.ssh/

Probabilmente ha a che fare con il lavoro di configurazione dei Mac in un modo specifico, ma consiglierei di verificarlo sshe il sistema operativo è d'accordo su dove si trova la home directory;)


0

Come indicato da "kasperd" nel suo commento alla domanda, si noti che sshnon cercherà necessariamente "$ {HOME} /. Ssh / config". Come è stato scoperto, è importante scavare più a fondo e apprendere dove si trovava la directory home al momento dell'accesso e prima che fosse affermata una nuova HOME.

Il suggerimento di esaminare l'output di è ssh -xvvvF ~/.ssh/config serverstato molto perspicace nell'aiutare a rispondere a questa stessa domanda. Dopo essersi trovato su un sistema in cui due nomi utente diversi hanno lo stesso UID nel file '/ etc / passwd', si è verificato questo problema. I due utenti hanno directory HOME diverse impostate in '/ etc / passwd'.

In tale scenario, si scopre che se si è connessi come secondo utente con un UID duplicato nel file '/ etc / passwd', sshutilizza la directory home del primo utente con un UID corrispondente dell'utente che esegue SSH comando.

Certo, questo caso d'uso è piuttosto strano e non aiuterà la maggior parte delle persone, ma in realtà è successo e questo Q / A ha aiutato a risolvere un problema.


0

Ciò è stato causato dalle impostazioni di autorizzazione del file.

Controlla le tue .sshautorizzazioni dir e file, controlla anche le impostazioni delle tue autorizzazioni home dir.

Per quanto mi riguarda, non voglio che gli altri vedano i miei file personali, quindi rimuovo il xpermesso della mia casa dir. Il che porta ssh a trovare le chiavi autorizzate nel percorso sbagliato.

Un modo per risolvere questo problema era impostare un altro percorso di autorità /etc/ssh/sshd_config, ad esempio:

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / authorized_keys

poi copia il tuo pub /etc/ssh/authorized_keys, ha funzionato per me.

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.