ssh-copy-id: команда не найдена

Вопрос или проблема

Я пытаюсь скопировать свои ssh-ключи на свою машину, но каждый раз, когда я выполняю ssh-copy-id archie@localhost, появляется эта ошибка:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/archie/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
архие@localhost's password: 
zsh:1: command not found: sh

В примере указан localhost, но когда я пробую с другой машиной, появляется та же ошибка.

sh ссылается на /bin/sh, который, в зависимости от дистрибутива, обычно является символической ссылкой на /bin/bash или /bin/dash. Попробуйте выполнить команду sh в вашем терминале, и если она вернет ошибку, это значит, что /bin/sh отсутствует. Если у вас есть доступ к root на системе, вы можете исправить это, выполнив ln -s /bin/bash /bin/sh.

Ответ или решение

Ошибка "ssh-copy-id: sh command not found": Как решить проблему?

При использовании команды ssh-copy-id для копирования SSH-ключей на ваш сервер, вы можете столкнуться с ошибкой, которая говорит: zsh:1: command not found: sh. Эта проблема может возникнуть как на локальной машине, так и при попытке подключения к удалённой машине. Давайте разберёмся с этой ошибкой и предложим решение.

Причины возникновения ошибки

Ошибка "command not found: sh" указывает на то, что система не может найти интерпретатор командной строки sh. Обычно sh является символической ссылкой на /bin/bash или /bin/dash. Если источник этой ошибки кроется в отсутствии самого файла sh, это может быть вызвано несколькими факторами:

  1. Отсутствие интерпретатора: Файл /bin/sh отсутствует в вашей системе.
  2. Не корректная символическая ссылка: Если символическая ссылка на sh неверно настроена или указывает на несуществующий интерпретатор.
  3. Проблема с окружением: Переменные окружения, связанные с вашей оболочкой, могут быть неправильно настроены.

Проверка наличия /bin/sh

Для начала вам следует проверить, установлен ли интерпретатор sh. Выполните следующую команду в терминале:

sh

Если вы получаете сообщение об ошибке, это подтверждает, что /bin/sh отсутствует на вашей системе.

Решение проблемы

Если вы удостоверились, что интерпретатор не установлен, и у вас есть доступ к учетной записи root, вы можете исправить это следующим образом:

  1. Убедитесь, что у вас установлен bash или dash. Вы можете установить его с помощью пакетного менеджера вашей системы. Для примера, в Ubuntu это можно сделать следующим образом:

    sudo apt-get install bash
  2. После этого создайте символическую ссылку на sh. Это можно сделать с помощью следующей команды:

    sudo ln -s /bin/bash /bin/sh

    Примечание: Если у вас установлен dash, вы можете создать символическую ссылку на него:

    sudo ln -s /bin/dash /bin/sh

Запуск команды ssh-copy-id снова

После выполнения этих шагов попробуйте снова выполнить команду ssh-copy-id:

ssh-copy-id archie@localhost

Если всё было сделано правильно, вы больше не должны видеть ошибку "command not found: sh".

Заключение

Ошибка "command not found: sh" может быть вызвана отсутствием интерпретатора командной строки sh в вашей системе. Убедитесь, что он установлен и правильно настроен. Следуя предложенным шагам, вы сможете устранить эту проблему и продолжить работу с SSH-ключами без лишних затруднений. Если вы продолжите сталкиваться с проблемами, проверьте системные журналы и конфигурации, чтобы получить более детальную информацию о возможных причинах.

Надеюсь, данное руководство поможет вам успешно устранить возникшую проблему!

Оцените материал
Добавить комментарий

Капча загружается...