ssh більше не використовує ~ / .ssh / config


20

Я нічого не можу ssh. Після невеликого копання я виявив, що він не читає ssh config з мого домашнього каталогу.

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

Якщо ви знаходитесь на ідентичному комп’ютері друга, де все працює, це виглядає приблизно так:

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

Це працювало раніше, і я не знаю нічого, що міг би зробити, щоб викликати цю проблему. Як це могло статися і як це виправити?

У посиланні на документацію, вказане tike, зазначено, що

Через потенцію до зловживань цей файл повинен мати чіткі права доступу: читати / писати для користувача та не доступні іншим.

Мої дозволи:

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

Я думаю, що проблема може полягати в плутанині щодо домашнього каталогу. Коли я змушую локальний файл конфігурації, він починає працювати, а потім раптом починає читати з/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
                      ^^^^^^^^^^

Але мій домашній режисер, здається, налаштований:

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

4
Мені вдалося вирішити проблему. Я скопіював вміст ~ / .ssh в /nas/kuba/.ssh. Тож насправді проблема з ssh раптом з використанням неправильної домашньої директорії, що, мабуть, насправді не є проблемою ssh.
Куба

Цей останній коментар був би дуже корисною інформацією для редагування питання.
David Z

Вихід показує, що ви використовуєте DSA. Я б знайшов спосіб перейти на RSA, оскільки це найкращий / найновіший & я вважаю, DSA порушена.
trysis

3
@Kuba Наскільки я можу сказати, sshігнорує HOMEзмінну середовища. Погана практика ігнорувати HOME, здається, що це sshробить. Якщо він не використовується HOME, я знаю єдину альтернативу, щоб подивитися на це uid. Якщо у вас є два записи /etc/passwdз однаковими uid, обидва в кінцевому підсумку використовуватимуть один і той же .ssh/configфайл, навіть якщо вони мали іншу дім.
kasperd

1
@kasperd, це має бути відповіддю. Це єдина сухар на цій сторінці, яка допомогла в моїй ситуації. Спасибі!
Wildcard

Відповіді:


14

Ви ніби потрапили в пастку між специфікою користувача проти глобальної ssh_config.

Будь ласка, перевірте параметри дозволу у файлі конфігурації вашого користувача ( ~/.ssh/config) та у вашому системному файлі конфігурації ( /etc/ssh/ssh_config), щоб отримати докладнішу інформацію.

Більше про це можна прочитати тут . Фактично, усіх файлів у вашому користувальницькому .sshкаталозі має бути 600, а configфайл 644. Ви можете встановити це за допомогою наступних команд у вашому домашньому каталозі:

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

Тому я розумію з doc, що спочатку він повинен прочитати конфігурацію з мого домашнього каталогу, а пізніше з глобальної (/ etc / ssh / ssh_config) Питання - чому це опускає мій локальний конфігуратор?
Куба

оновлена ​​відповідь вище
tike

Я намагався. Нічого не змінилося. Я оновив свою запитання більш детальною інформацією.
Куба

якщо ви не змінили вищезазначене питання кардинально під час редагування: debug1: /Users/kuba/.ssh/config рядок 1: Застосування параметрів для * debug1: /Users/kuba/.ssh/config рядок 39: Застосування параметрів для його конфігурації читання, і, мабуть, ваші шаблони конфігурації грають роль. Я б утримував простий файл конфігурації, щоб спершу перевірити визначений порт і сервер dest.
tike

Насправді я кардинально змінив питання до того, що, мабуть, я мушу його закрити. Здається, ssh трактує інший каталог як свою домашню папку. Щось, що ні ~, ні $ HOME.
Куба

3

перевірити дозволи

ls -lsd ~/.ssh

і

ls -ls ~/.ssh/*

Якщо дозволи недоступні, ssh-клієнт не намагатиметься прочитати з нього


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config виглядає так, що я є власником усіх
Kuba

@Kuba спробуйте з ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh всього 80 drwx ------ 9 куба 1029 306 1 липня 16:33. drwx ------ + 42 куба 1029 1428 1 липня 16:33 .. -rw-r - r-- 1 куба 1029 406 7 травня 14:53 дозволено_кіс -rwx ------ 1 куба 1029 1528 15 травня 13:07 конфігурація -rwx ------ 1 куба 1029 1675 7 травня 14:53 id_rsa -rwx ------ 1 куба 1029 406 7 травня 14:53 id_rsa.pub -rw-r-- r-- 1 куба 1029 16049 22 травня 09:36 відомі_хости
Куба

@ Ви впевнені, що ваш домашній користувач не відкриється?
c4f4t0r

2
Це + там ... це не ACL? Це може бути винуватець?
Хорхе Суарес де Ліс

0

У мене була така ж проблема, і я зміг її виправити, встановивши прапор + x на своєму ~/.sshdir (0700), а також встановивши 0600 ~/.ssh/config.


0

Зважаючи на те, що у мене виникла така ж проблема, я вирішив її, зробивши ssh, щоб знову створити .sshпапку (просто перейменувати sshта виконати якусь команду ssh), а потім скопіювати потрібні файли з відповідними дозволами. (конфігурація з 600).

Мабуть, ssh стає підозрілим, якщо папку .sshзмінено таким чином, що вона не схвалює ...


0

SSH не буде читати локальну конфігурацію, якщо вона використовується в файловій системі, встановленій NFS. Це варто перевірити, оскільки всі дозволи можуть бути просто чудовими, а SSH (принаймні версія 6.6) не дасть вам ніяких вказівок, чому він не читає налаштування користувача. (Однак ви прочитаєте його з тома NFS, якщо використовуватимете цю -Fопцію.)


0

Я зіткнувся з тією ж проблемою на MacO. Переглянувши інформацію про налагодження ручного входу (ssh @), я виявив, що, очевидно, ssh подумав, що мій домашній каталог, /srv/home/<userid>і шукав там .sshкаталог, і проігнорував той, що в/Users/<userid>/.ssh/

Можливо, це пов'язане з роботою з налаштування Macs певним чином, але я рекомендую перевірити це, sshі Операційна система узгодить, де знаходиться домашній каталог;)


0

Як "kasperd" вказав у своєму коментарі до питання, зауважте, що sshне обов'язково шукати "$ {HOME} /. Ssh / config". Як було з’ясовано, важливо копати глибше і дізнатися, де знаходився домашній каталог під час входу в систему і перед тим, як було затверджено нове ДОМАШНЄ.

Підказка про перегляд результатів ssh -xvvvF ~/.ssh/config serverбула дуже проникливою, допомагаючи відповісти на це саме запитання. Знайшовшись у системі, де два різні імена користувачів мають однаковий UID у файлі '/ etc / passwd', ця проблема виникла. Два користувачі мають різні каталоги HOME, встановлені в '/ etc / passwd'.

У такому сценарії виявляється, що якщо хтось увійшов як другий користувач із дублікатом UID у файлі '/ etc / passwd', він sshвикористовує домашній каталог першого користувача з відповідним UID користувача, що працює з SSH командування.

Зрозуміло, цей випадок використання є досить дивним, і не допоможе більшості людей, але насправді це сталося, і цей Q / A допоміг вирішити проблему.


0

Це було викликано налаштуваннями дозволу на файли.

Перевірте .sshдозволи на доступ до dir та файлів, а також перевірте налаштування дозволу на дім.

Для мене я не хочу, щоб інші бачили мої особисті файли, тому я видаляю xдозвіл свого будинку dir. Що призводить ssh до пошуку авторизованих ключів до неправильного шляху.

Один із способів виправити це - встановити інший шлях авторитету /etc/ssh/sshd_config, наприклад:

AuthorizedKeysFile .ssh / Author_keys / etc / ssh / pooblasti_keys

потім скопіюйте свій паб /etc/ssh/authorized_keys, який працював на мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.