ssh больше не использует ~ / .ssh / config

20

Я не могу ssh ничего, что я мог. Немного покопавшись, я обнаружил, что он не читает конфигурацию ssh из моего домашнего каталога.

$ 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
(...)

Это работало ранее, и я не знаю ничего, что я мог бы сделать, чтобы вызвать эту проблему. Как это могло произойти и как это исправить?

В ссылке на документацию, на которую указывает тике, указано, что

Из-за возможного злоупотребления этот файл должен иметь строгие разрешения: чтение / запись для пользователя и недоступность для других.

Мои разрешения:

$ 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
Kuba
источник
4
Я смог обойти проблему. Я скопировал содержимое ~ / .ssh в /nas/kuba/.ssh. Так что это на самом деле проблема с ssh, внезапно использующим неправильный домашний каталог, что, вероятно, не является проблемой ssh.
Куба
Этот последний комментарий был бы очень полезной информацией для редактирования вопроса.
Дэвид Z
Ваш вывод показывает, что вы используете DSA. Я бы нашел способ перейти на RSA, так как он лучший / самый новый, и я считаю, что DSA не работает.
trysis
3
@ Куба Насколько я могу судить, sshигнорирует HOMEпеременную окружения. Это плохая практика игнорировать HOME, кажется, это то, что sshделает. Если он не используется HOME, единственная альтернатива, о которой я знаю, - это поискать ее из uid. Если у вас есть две записи /etc/passwdс одинаковыми значениями uid, обе будут использовать один и тот же .ssh/configфайл, даже если у них разные дома.
Касперд
1
@kasperd, это должно быть ответом. Это единственная крошка на этой странице, которая помогла в моей ситуации. Благодарность!
Wildcard

Ответы:

14

Похоже, вы попали в ловушку между пользователем и глобальным ssh_config.

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

Вы можете прочитать больше об этом здесь . Практически все файлы в вашем пользовательском .sshкаталоге должны быть на 600, а configфайл должен быть на 644. Вы можете установить это с помощью следующих команд в вашем домашнем каталоге:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config
хам
источник
Из документа я понимаю, что сначала он должен прочитать конфигурацию из моего домашнего каталога, а затем из глобального (/ etc / ssh / ssh_config). Вопрос в том, почему он пропускает мою локальную конфигурацию?
Куба
обновленный ответ выше
tike
Я пытался. Ничего не изменилось. Я обновил свой вопрос с более подробной информацией.
Куба
если вы не изменили вышеуказанный вопрос радикально при редактировании: debug1: /Users/kuba/.ssh/config строка 1: применение параметров для * debug1: /Users/kuba/.ssh/config строка 39: применение параметров для био-конфигурации его чтения, и ваш шаблон подстановки, кажется, играет роль. Я хотел бы сохранить простой файл конфигурации для тестирования сначала с определенным портом и сервером Dest.
июня
На самом деле я резко изменил вопрос до такой степени, что мне, вероятно, следует его закрыть. Кажется, что ssh рассматривает другой каталог как мою домашнюю папку. Что-то, что ни ~, ни $ HOME.
Куба
3

проверить разрешения

ls -lsd ~/.ssh

а также

ls -ls ~/.ssh/*

Если разрешения плохие, тогда клиент ssh не будет пытаться читать с него

Майк
источник
0 drwx ------ 9 куба /Users/kuba/.ssh 8 -rwx ------ 1 куба /Users/kuba/.ssh/config выглядит так, как будто я являюсь владельцем всех из них
Куба
@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 author_keys -rwx ------ 1 куба 1029 1528 15 мая 13:07 config -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 known_hosts
Куба
@ Вы уверены, что ваш домашний пользователь dir не открывается?
c4f4t0r
2
Это + там ... разве это не ACL? Это может быть виновником?
Хорхе Суарес де Лис
0

У меня была та же проблема, и я смог ее исправить, установив флаг + x на моем ~/.sshкаталоге (0700), а также включив 0600 ~/.ssh/config.

dAngelov
источник
0

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

Очевидно ssh становится подозрительным, если папка .sshизменена способом, которым это не одобряет ...

шпиль
источник
0

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

Курт Дж. Сэмпсон
источник
0

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

Возможно, это как-то связано с настройкой компьютеров Mac определенным образом, но я бы порекомендовал проверить это, sshи операционная система согласилась с тем, где находится домашний каталог;)

chw21
источник
0

Как указано в комментарии к вопросу «kasperd», обратите внимание, что sshне обязательно искать «$ {HOME} /. Ssh / config». Как выяснилось, важно копнуть глубже и узнать, где находился домашний каталог во время входа в систему и до того, как был утвержден новый HOME.

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

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

Конечно, этот вариант использования довольно странный, и он не поможет большинству людей, но на самом деле это произошло, и этот Q / A помог решить проблему.

kbulgrien
источник
0

Это было вызвано настройками прав доступа к файлам.

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

Для меня я не хочу, чтобы другие видели мои личные файлы, поэтому я удаляю xразрешение моего домашнего каталога. Что приводит ssh к поиску авторизованных ключей по неверному пути.

Один из способов исправить это - установить другой путь доступа /etc/ssh/sshd_config, например:

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / авторизованный_ключей

затем скопируйте свой паб в /etc/ssh/authorized_keys, работал на меня.

сойка
источник