Вход в систему SSH не работает с помощью ключа Без Пароля?

Лично, я использовал бы -exec найдите, что действие решает этот вид проблемы. Или, при необходимости, xargs, который допускает параллельное выполнение.

Однако существует способ добраться find произвести читаемый ударом список имен файлов. Неудивительно, это использует -exec и bash, в особенности расширение printf команда:

find ... -exec bash -c 'printf "%q " "$@"' printf {} ';'

Однако, в то время как это распечатает правильно оставленные из оболочки слова, это не будет применимо с $(...), потому что $(...) не интерпретирует кавычки или Escape. (resut $(...) подвергается разделению слова и расширению пути, если не окружено кавычками.), Таким образом, следующее не сделает то, что Вы хотите:

ls $(find ... -exec bash -c 'printf "%q " "$@"' printf {} +)

То, что необходимо было бы сделать:

eval "ls $(find ... -exec bash -c 'printf "%q " "$@"' printf {} +)"

(Обратите внимание, что я не предпринял реальной попытки протестировать вышеупомянутое чудовище.)

Но затем Вы могли бы также сделать:

find ... -exec ls {} +
5
25.05.2014, 14:42
3 ответа
[1179597] Я решил проблему, просто запустив эту команду на локальной машине ( после генерации ключа):

3
27.01.2020, 20:35

Вы страдали от следующей ошибки:

Агент признал, что не подписал с помощью ключа.

Это, к сожалению, не диагностическое сообщение. Есть (по крайней мере) два класса проблем, которые он может решить:

Ключ не загружен

Для большинства проблем это означает, что ваш ssh-агент не загружен никакими ключами ssh, которые были бы приняты для вашей учетной записи на целевом сервере. В этом случае, как отмечено в ответе @Networker's answer на этот вопрос, решение довольно простое: добавьте ключ:

ssh-add

Если ключ находится в месте, не принятом по умолчанию, вам нужно будет сообщить об этом по адресу ssh-add:

ssh-add /path/to/key

Агент не может понять ключ

Это был GNOME ошибка 754028 , решенная в Seahorse 3.29.90 (стабильный 3.30 выпущен 2018-09-03 , включённый в Ubuntu 18.10 , Fedora 29 , и, вероятно, Red Hat/CentOS 9). Морской коньок до 3.29.90 (и, следовательно, GNOME Keyring) не смог ни создать, ни добавить новые типы клавиш, как ed25519 и клавиши, сгенерированные с помощью ssh-keygen -o -a 100 (как предложено в учебнике Secure Secure Shell).

Диагностика этой проблемы:

  • ssh myserver не работает с "признанным отказом агента ssh"
  • SSH_AUTH_SOCK= ssh myserver работает просто отлично
  • Заключение: gnome-keyring не может справиться со сложными ключами

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

Обходной путь: Запуск нового ssh-агента с использованием того же гнезда, что и у гномовского ключа :

ssh-agent -a $SSH_AUTH_SOCK

Запуск нового экземпляра ssh-agent (перезапись менее способного экземпляра GNOME), так что в нем не будет ключей (несмотря на то, что говорит seahorse, так как он привязан к старому агенту). Вы должны будете добавить их через ssh-add, как отмечено в разделе Ключ не загружен выше.

Вы должны будете запускать его каждый раз при входе в систему (или вручную добавлять его в скрипты запуска). Если вы хотите сохранить старый сокет, сначала запустите mv $SSH_AUTH_SOCK $SSH_AUTH_SOCK.broken.

5
27.01.2020, 20:35

Я добавил:

Host github.com
  HostName github.com
  User YOURUSERNAME
  IdentityFile ~/.ssh/id_rsa.pub

в мой файл ~ / .ssh / config, чтобы обойти эту проблему, и, похоже, он работает.

1
27.01.2020, 20:35

Теги

Похожие вопросы