Я не могу 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
ssh
игнорируетHOME
переменную окружения. Это плохая практика игнорироватьHOME
, кажется, это то, чтоssh
делает. Если он не используетсяHOME
, единственная альтернатива, о которой я знаю, - это поискать ее изuid
. Если у вас есть две записи/etc/passwd
с одинаковыми значениямиuid
, обе будут использовать один и тот же.ssh/config
файл, даже если у них разные дома.Ответы:
Похоже, вы попали в ловушку между пользователем и глобальным ssh_config.
Пожалуйста, проверьте настройки разрешений файла конфигурации вашего пользователя (
~/.ssh/config
) и общесистемного файла конфигурации (/etc/ssh/ssh_config
), чтобы получить более подробную информацию.Вы можете прочитать больше об этом здесь . Практически все файлы в вашем пользовательском
.ssh
каталоге должны быть на 600, аconfig
файл должен быть на 644. Вы можете установить это с помощью следующих команд в вашем домашнем каталоге:источник
проверить разрешения
а также
Если разрешения плохие, тогда клиент ssh не будет пытаться читать с него
источник
У меня была та же проблема, и я смог ее исправить, установив флаг + x на моем
~/.ssh
каталоге (0700), а также включив 0600~/.ssh/config
.источник
Что бы это ни стоило, у меня возникла та же проблема, и я исправил ее, выполнив команду ssh, чтобы снова создать
.ssh
папку (просто переименоватьssh
и выполнить некоторую команду ssh), и затем скопировать необходимые файлы с соответствующими разрешениями. (конфиг с 600).Очевидно ssh становится подозрительным, если папка
.ssh
изменена способом, которым это не одобряет ...источник
SSH не будет читать локальную конфигурацию, если она находится в файловой системе, смонтированной по NFS. Это стоит проверить, потому что все разрешения могут быть в порядке, и SSH (по крайней мере, версия 6.6) не даст вам никаких указаний на то, почему он не читает конфигурацию пользователя. (Однако, он будет читать его с тома NFS, если вы используете эту
-F
опцию.)источник
Я столкнулся с той же проблемой на MacOs. Просматривая отладочную информацию о входе в систему вручную (ssh @), я обнаружил, что ssh, по-видимому, думал, что мой домашний каталог находится
/srv/home/<userid>
и искал там.ssh
каталог, и проигнорировал его в/Users/<userid>/.ssh/
Возможно, это как-то связано с настройкой компьютеров Mac определенным образом, но я бы порекомендовал проверить это,
ssh
и операционная система согласилась с тем, где находится домашний каталог;)источник
Как указано в комментарии к вопросу «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 помог решить проблему.
источник
Это было вызвано настройками прав доступа к файлам.
Проверьте ваши
.ssh
права доступа к файлам и файлам, а также проверьте настройки разрешений для вашего домашнего каталога.Для меня я не хочу, чтобы другие видели мои личные файлы, поэтому я удаляю
x
разрешение моего домашнего каталога. Что приводит ssh к поиску авторизованных ключей по неверному пути.Один из способов исправить это - установить другой путь доступа
/etc/ssh/sshd_config
, например:затем скопируйте свой паб в
/etc/ssh/authorized_keys
, работал на меня.источник