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