Назад | Перейти на главную страницу

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

Я не могу использовать 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
(...)

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

В ссылке на документацию, указанную 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

Кажется, вы оказались в ловушке между конкретным пользователем и глобальным ssh_config.

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

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

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

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

ls -lsd ~/.ssh

и

ls -ls ~/.ssh/*

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

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

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

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

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

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

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

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

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

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

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

Это было вызвано настройками разрешений для файлов.

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

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

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

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / authorized_keys

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