ssh n'utilise plus ~ / .ssh / config


20

Je ne peux rien faire de ce que j'ai pu. Après avoir creusé un peu, j'ai découvert qu'il ne lisait pas la configuration ssh de mon répertoire personnel.

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

Lorsque sur un ordinateur identique d'un ami, où tout fonctionne, cela ressemble à ceci:

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

Cela a fonctionné plus tôt et je ne suis au courant de rien que j'aurais pu faire pour causer ce problème. Comment cela pourrait-il arriver et comment y remédier?

Dans le lien de documentation pointé par tike, il indique que

En raison du risque d'abus, ce fichier doit avoir des autorisations strictes: lecture / écriture pour l'utilisateur, et non accessible par d'autres.

Mes autorisations sont:

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

Je pense que le problème pourrait provenir d'une confusion au sujet du répertoire personnel. Lorsque je force le fichier de configuration local, il commence à fonctionner, puis commence soudainement à lire/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
                      ^^^^^^^^^^

Mais mon répertoire d'origine semble être réglé correctement:

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

4
J'ai pu contourner un problème. J'ai copié le contenu de ~ / .ssh dans /nas/kuba/.ssh. C'est donc en fait un problème avec ssh qui utilise soudainement le mauvais répertoire personnel, ce qui n'est probablement pas vraiment un problème ssh.
Kuba

Ce dernier commentaire serait une information très utile à modifier dans la question.
David Z

Votre sortie indique que vous utilisez DSA. Je trouverais un moyen de passer à RSA, car c'est le meilleur / le plus récent et je crois que DSA est cassé.
trysis

3
@Kuba Autant que je sache, sshignore la HOMEvariable d'environnement. C'est une mauvaise pratique d'ignorer HOME, il semble que ce soit le sshcas. S'il ne l'utilise pas HOME, la seule alternative que je connaisse est de le rechercher à partir du uid. Si vous avez deux entrées /etc/passwdidentiques uid, les deux finiront par utiliser le même .ssh/configfichier même si leur domicile est différent.
kasperd

1
@kasperd, cela devrait être une réponse. C'est le seul fil d'Ariane sur cette page qui a aidé avec ma situation. Merci!
Wildcard

Réponses:


14

Vous semblez être coincé entre ssh_config spécifique à l'utilisateur et global.

Veuillez vérifier les paramètres d'autorisation du fichier de configuration de votre utilisateur ( ~/.ssh/config) et de votre fichier de configuration à l'échelle du système ( /etc/ssh/ssh_config) pour mieux comprendre.

Vous pouvez en savoir plus à ce sujet ici . En pratique, tous les fichiers de votre .sshrépertoire utilisateur doivent être sur 600 et le configfichier sur 644. Vous pouvez définir cela avec les commandes suivantes dans votre répertoire personnel:

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

Donc, je comprends du document qu'il doit d'abord lire la configuration de mon répertoire personnel, puis du global (/ etc / ssh / ssh_config) La question est - pourquoi est-ce qu'il ommite ma configuration locale?
Kuba

mise à jour de la réponse ci
tike

J'ai essayé. Rien n'a changé. J'ai mis à jour ma quetsion avec plus de détails.
Kuba

si vous n'avez pas changé radicalement la question ci-dessus lors de l'édition: debug1: /Users/kuba/.ssh/config ligne 1: application d'options pour * debug1: /Users/kuba/.ssh/config ligne 39: application d'options pour bio sa configuration de lecture, et votre joker de configuration semble jouer un rôle. Je garderais un fichier de configuration simple pour tester d'abord avec le port défini et le serveur de destination.
tike

En fait, j'ai radicalement changé la question au point que je devrais probablement la fermer. Il semble que ssh traite l'autre répertoire comme mon dossier personnel. Quelque chose qui n'est ni ~, ni $ HOME.
Kuba

3

vérifier les autorisations

ls -lsd ~/.ssh

et

ls -ls ~/.ssh/*

Si les autorisations sont mauvaises, le client ssh n'essaiera pas de lire


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config on dirait que je suis le propriétaire de tous
Kuba

@Kuba essayez avec ls -la ~ / .ssh /
c4f4t0r

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

@ êtes-vous sûr que le répertoire de votre utilisateur à domicile ne doit pas être ouvert?
c4f4t0r

2
Ce + là-bas ... n'est-ce pas des ACL? C'est peut-être le coupable?
Jorge Suárez de Lis

0

J'ai eu le même problème et j'ai pu le résoudre en définissant l'indicateur + x sur mon ~/.sshdir (0700), tout en activant 0600 ~/.ssh/config.


0

Pour ce que ça vaut, j'ai eu le même problème et l'ai résolu en faisant ssh pour recréer le .sshdossier (juste renommer sshet exécuter une commande ssh), et en copiant les fichiers nécessaires par la suite, avec les autorisations appropriées. (config avec 600).

Apparemment, ssh devient suspect si le dossier .sshest modifié d'une manière qu'il n'approuve pas ...


0

SSH ne lira pas la configuration locale si elle se trouve sur un système de fichiers monté sur NFS. Cela vaut la peine d'être vérifié car toutes les autorisations peuvent être très bien et SSH (au moins la version 6.6) ne vous donnera aucune indication de pourquoi il ne lit pas la configuration utilisateur. (Il le lira cependant à partir d'un volume NFS si vous utilisez l' -Foption.)


0

J'ai rencontré le même problème sur MacOs. En regardant les informations de débogage d'une connexion manuelle (ssh @), j'ai découvert qu'apparemment ssh pensait que mon répertoire personnel était /srv/home/<userid>et cherchait le .sshrépertoire là-dedans, et a ignoré celui de/Users/<userid>/.ssh/

Cela a probablement quelque chose à voir avec le travail de configuration des Mac d'une manière spécifique, mais je recommanderais de vérifier cela sshet le système d'exploitation s'accorde sur l'emplacement du répertoire personnel;)


0

Comme 'kasperd' l'a indiqué dans son commentaire sur la question, notez qu'il sshne recherchera pas nécessairement '$ {HOME} /. Ssh / config'. Comme cela a été découvert, il est important de creuser plus profondément et d'apprendre où se trouvait le répertoire personnel au moment de la connexion et avant qu'un nouveau HOME ne soit affirmé.

L'astuce pour parcourir la sortie de a ssh -xvvvF ~/.ssh/config serverété très utile pour aider à répondre à cette même question. En se trouvant sur un système où deux noms d'utilisateur différents ont le même UID dans le fichier '/ etc / passwd', ce problème a été rencontré. Les deux utilisateurs ont des répertoires HOME différents définis dans '/ etc / passwd'.

Dans un tel scénario, il s'avère que si l'on est connecté en tant que deuxième utilisateur avec un UID en double dans le fichier '/ etc / passwd', il sshutilise le répertoire personnel du premier utilisateur avec un UID correspondant de l'utilisateur exécutant le SSH commander.

Certes, ce cas d'utilisation est assez étrange et n'aidera pas la plupart des gens, mais cela s'est effectivement produit et ce Q / A a aidé à résoudre un problème.


0

Cela était dû aux paramètres d'autorisation des fichiers.

Vérifiez vos .sshautorisations de dir et de fichiers, vérifiez également vos paramètres d'autorisation de dir.

Pour moi, je ne veux pas que les autres voient mes fichiers personnels, je supprime donc la xpermission de mon répertoire home. Ce qui conduit ssh à trouver les clés autorisées vers le mauvais chemin.

Une façon de résoudre ce problème était de définir un autre chemin d'accès d'autorité /etc/ssh/sshd_config, par exemple:

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / authorized_keys

puis copiez votre pub à /etc/ssh/authorized_keys, a travaillé pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.