9

Я храню файл закрытого ключа SSH на отдельном флэш-накопителе USB (в зашифрованном виде), но при попытке использовать его для подключения к удаленному хосту появляется ошибка:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/Volumes/USB/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Volumes/USB/id_rsa
Permission denied (publickey).

Я попытался изменить разрешения для ключевого файла (chmod 600 id_rsa), но он все еще выглядит как 777 (изменение не вступает в силу). Это на Mac OS X.

Есть идеи как это исправить?

5 ответов5

6

Какой тип файловой системы у вас есть на USB-накопителе? Если это одна из файловых систем FAT, FAT8, FAT16, VFAT, FAT32, то вам, вероятно, не повезло, поскольку у них нет полей для хранения битов разрешений в стиле Unix. (Драйвер файловой системы UMSDOS для Linux делает это, но я сомневаюсь, что в OS X есть что-то хакерское. :)

Если это NTFS или NTFS2, то, возможно, может быть сделано какое-то сопоставление, но я бы на это не рассчитывал.

Если это HFS+ или UFS, то определенно требуется больше деталей, потому что это должно работать так, как вы описали, но символические ссылки могут помешать.

4

Это проблема с разрешениями на Mac. Файловая система - HFS+, поэтому первый комментарий на данный момент неверен. Разрешения - это основа ОС * nix, поэтому вам следует понять.

$ chmod 600 /Volumes/USB/id_rsa
0

Я думаю, что chmod 600 /Volumes/USB/id_rsa достаточно.

0

У меня были те же проблемы, что и я, чтобы решить мою проблему.

вот решение ::

Решение: Добавьте правильный ключ хоста в /home/user/.ssh/known_hosts

Нет необходимости удалять весь файл known_hosts, только оскорбительную строку в этом файле. Например, если у вас есть 3 сервера следующим образом.

myserver1.com,64.2.5.111 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0EnGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0E
nGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94H+uv304/ZDz6xZb9ZWsdm+264qReImZzruAKxnwTo4dcHkgKXKHeefnBKyEvvp/2ExMV9WT5DVe1viVwk=
myserver2.com,125.1.12.5 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAtDiERucsZzJGx/1kUNIOYhJbczbZHN2Z1gCnTjvO/0mO2R6KiQUP4hOdLppIUc9GNvlp1kGc3w7B9tREH6kghXFiBjrIn6VzUO4uwrnsMbnAnscD5EktgI7fG4ZcNUP 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGxQz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/IyI4NxHhhpltYZKW/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw=
myserver3.com,125.2.1.15 ssh-rsa 
5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGx0lVkphVsvYD5hJzm0eKHv+oUXRT9v+QMIL+um/IyI4NxHhhpltYZKW
as3533dka//sd33433////44632Z6MGnAazIviHBldxtGrFwvEnk82/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw==

Чтобы удалить второй сервер (myserver.com), откройте файл:

# vi +2 .ssh/known_hosts

И нажмите команду dd, чтобы удалить строку. Сохраните и закройте файл. Или используйте следующее

$ vi ~/.ssh/known_hosts

Теперь перейдите к строке # 2, введите следующую команду

:2

Теперь удалите строку с помощью dd и выйдите:

dd
:wq

Ознакомьтесь с полным видео-уроком по вашей проблеме:

Ошибка смены ключа хоста SSH

0

Ваша флешка, вероятно, предварительно отформатирована в FAT32, которая не поддерживает разрешения в стиле Unix. Переформатируйте флешку в лучшую файловую систему (HFS+ приходит на ум, так как вы на Mac).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .