Ssh не является внутренней или внешней командой для исполняемой программы или пакетного файла

Обновлено: 21.11.2024

На этой странице рассматриваются распространенные проблемы с west и способы их решения.

ошибки получения обновлений west¶

Один из хороших способов решения проблем с получением данных — запустить west update в подробном режиме, например так:

Выходные данные включают команды Git, запущенные западом, и их выходные данные. Найдите что-то вроде этого:

Пример команды git fetch в последней строке выше — это то, что должно быть успешным.

Одна из стратегий — перейти в /some/directory , скопировать/вставить и запустить всю команду git fetch, а затем выполнить отладку оттуда, используя документацию для вашего помощника по хранению учетных данных.

Если вы можете добиться успешного выполнения команды git fetch без запроса пароля при непосредственном запуске, вы сможете запустить west update без ввода пароля в той же оболочке.

«Запад» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл».¶

В Windows это означает, что либо west не установлен, либо переменная среды PATH не содержит каталог, в котором pip установил west.exe .

Во-первых, убедитесь, что вы установили west; см. Установка west . Затем попробуйте запустить на запад из нового окна cmd.exe. Если это все еще не работает, продолжайте читать.

Вам нужно найти каталог, содержащий west.exe , а затем добавить его в PATH . (Это изменение PATH должно было быть сделано для вас, когда вы устанавливали Python и pip, поэтому обычно вам не нужно выполнять эти шаги.)

Выполните эту команду в cmd.exe:

Найдите в выходных данных строку вида Location: C:\foo\python\python38\lib\site-packages . Точное местоположение на вашем компьютере будет другим.

Найдите файл с именем west.exe в каталоге скриптов C:\foo\python\python38\scripts .

Обратите внимание, что lib\site-packages в выводе pip3 show были изменены на скрипты!

Если вы видите west.exe в каталоге скриптов, добавьте полный путь к скриптам в PATH с помощью следующей команды:

Не просто копируйте/вставляйте эту команду. Расположение каталога скриптов в вашей системе будет другим.

Закройте окно cmd.exe и откройте новое. Вы должны быть в состоянии бежать на запад .

"Ошибка: неожиданный ключевой аргумент "requires_workspace""¶

Эта ошибка возникает в некоторых дистрибутивах Linux после обновления до west 0.7.0 или более поздней версии с 0.6.x. Например:

Похоже, это проблема с пунктом дистрибутива; подробности см. в этом комментарии в западном выпуске 373. Известно, что некоторые версии Ubuntu и Linux Mint имеют эту проблему. Некоторые пользователи сообщают о проблемах и в Fedora.

Ни пользователи macOS, ни пользователи Windows не сообщали об этой проблеме. Сообщений об этой проблеме в других дистрибутивах Linux, таких как Arch Linux, также не поступало.

Временное решение 1: удалите старую версию, а затем обновите:

Временное решение 2: установите west в виртуальной среде Python

Одним из вариантов является использование модуля venv, который является частью стандартной библиотеки Python 3. Некоторые дистрибутивы удаляют этот модуль из своих базовых пакетов Python 3, поэтому вам может потребоваться дополнительная работа, чтобы установить его в вашей системе.

"неверный выбор: "сборка" (или "прошивка" и т. д.)¶

Если вы видите такую ​​непредвиденную ошибку при попытке запустить команду расширения Zephyr (например, west flash , west build и т. д.):

Скорее всего, вы запускаете команду за пределами рабочей области west . Уэст должен знать, где находится ваше рабочее пространство, чтобы найти расширения .

Чтобы исправить это, у вас есть два варианта:

Запустите команду из рабочей области (например, из каталога zephyrproject, который вы создали при начале работы).

Например, создайте каталог сборки внутри рабочей области или запустите west flash --build-dir YOUR_BUILD_DIR внутри рабочей области.

Установите переменную среды ZEPHYR_BASE и повторно запустите команду расширения west. Если установлено, запад будет использовать ZEPHYR_BASE для поиска вашей рабочей области.

Если вы не уверены, является ли команда встроенной или расширением, запустите west help из своего рабочего пространства. Вывод выводит команды расширения отдельно и выглядит следующим образом для основной линии Zephyr:

«неверный выбор: ‘post-init’»¶

Если вы видите эту ошибку при запуске west init:

Значит, у вас установлена ​​старая версия west, и вы пытаетесь использовать ее в рабочей области, для которой требуется более новая версия.

Самый простой способ решить эту проблему — перейти на западную версию и повторить попытку следующим образом:

Установите последнюю версию west с параметром -U для установки pip3, как показано в разделе Установка west .

Создайте резервную копию всего содержимого zephyrproject/.west/config, которое вы хотите сохранить. (Если у вас не установлены какие-либо параметры конфигурации, этот шаг можно пропустить.)

Полностью удалите каталог zephyrproject/.west (если вы этого не сделаете, вы получите сообщение об ошибке «уже в рабочей области», которое будет рассмотрено далее).

Снова бегите на запад.

«уже в установк延

Вы можете увидеть эту ошибку при запуске west init с west 0.6:

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

Это сделано намеренно; он позволяет вам размещать ваши приложения Zephyr в любом каталоге и по-прежнему использовать west для их сборки, прошивки и отладки, например.

Чтобы решить эту проблему, отключите ZEPHYR_BASE и повторите попытку.

© Copyright 2015-2022 Участники проекта Zephyr и отдельные участники. Последнее обновление: 24 марта 2022 г.

С момента изобретения компьютеров мы искали способы максимально упростить передачу данных с одного компьютера на другой. Иногда, чем проще и дешевле, тем уязвимее.

Уязвимые сети между компьютерами означают, что любые данные, которые вы передаете, могут быть перехвачены третьей стороной, хакером, и украдены. Теперь, даже если вы думаете, что ваши данные на самом деле не настолько важны, подумайте еще раз. Вполне возможно, что ваша базовая информация может привести хакера к чему-то большему, или что-то маленькое и неважное в данный момент может стать основой для чего-то большего. Если ваши данные были скомпрометированы с самого начала, есть вероятность, что вся ваша система останется скомпрометированной в течение длительного времени.

Чтобы защитить ваши данные от кибератак, используется SSH. SSH расшифровывается как Secure Shell. Это сетевой протокол, который позволяет создать полностью безопасную «туннельную» сеть между вами и другим компьютером. Туннель должен быть невидимым для любых хакеров, которые могут пытаться получить доступ к вашим передаваемым данным.

Настроить и запустить SSH несложно, если вы провели исследование. Обычно он работает довольно гладко, но в некоторых случаях вы можете столкнуться с несколькими ошибками. Одной из наиболее распространенных ошибок является «SSH не распознается как внутренняя или внешняя команда».

Исправление SSH не распознается как внутренняя или внешняя команда.

Оглавление

Что в первую очередь вызывает проблему?

Чтобы исправить ошибку, важно знать ее причину. Поскольку ошибка немного расплывчата в том, как она сформулирована, она не указывает вам автоматически на решение. Это означает, что нам придется проследить наши шаги до самого начала, чтобы выяснить, откуда возникла ошибка, и исправить ее оттуда.

1. Проверьте, правильно ли установлен OpenSSH

OpenSSH — это инструмент, который используется для подключения к желаемому SSH-серверу. Это одна из утилит в наборе утилит, которая поможет вам установить правильное SSH-соединение. Люди часто устанавливают OpenSSH, но делают это неправильно. Теперь, если инструмент, который должен открывать сам SSH, не работает должным образом, он также не сможет обрабатывать ваши команды. Если это произойдет, вы увидите одну из ошибок: «SSH не распознается как внутренняя или внешняя команда».

Чтобы исключить OpenSSH как основную причину проблемы, перейдите в папку «Системы» и проверьте, существует ли вообще файл «OpenSSH». Если это не так, инструмент никогда не был установлен должным образом. Вам придется установить его снова.

Как установить OpenSSH:

  1. Войдите в меню настроек Windows.
  2. Найдите вариант с надписью «Приложения» и нажмите на него.
  3. Затем найдите «Операционные функции» и нажмите на него.
  4. Если OpenSSH установлен, он уже будет отображаться в списке. Если это не так, нажмите "Добавить функцию".
  5. Затем в раскрывающемся меню нажмите «Открыть SSH-клиент».
  6. Нажмите "Установить".

После этого OpenSSH будет переустановлен (или просто установлен правильно с самого начала), и вы сможете попробовать запустить свою команду еще раз. В большинстве случаев этого достаточно, чтобы исправить то, что вызывало проблему. Если это не так, вы можете исключить это как проблему.

2. Ошибка пользователя

Возможно, OpenSSH установлен правильно, но вы по-прежнему сталкиваетесь с ошибкой «SSH не распознается как внутренняя или внешняя команда» просто потому, что вы вводите неправильную команду.

Чтобы исключить это:

  1. Перепроверьте свою команду, прежде чем нажимать Enter.
  2. Убедитесь, что все, что вы вводите, верно.
  3. Если вы напечатали что-то неправильно, исправьте ошибку и запустите снова, все должно пройти гладко.

3. Неверные ключи

Чтобы установить безопасное соединение, вам необходимо ввести открытый и закрытый ключи на компьютеры, чтобы они работали. Часто при повторном наборе ключа вы можете случайно нажать другую клавишу на клавиатуре и в итоге получить «неправильный пароль». Вернитесь туда, где были даны ключи, и скопируйте их.Вставьте их и убедитесь, что вы ничего не вводите случайно, пока вы делаете это, чтобы убедиться, что вы вставляете правильный ключ. Попробуйте запустить команду еще раз. В идеале к этому шагу вы должны исправить код ошибки SSH.

Если ваши программы/инструменты установлены правильно и вы не делаете ошибок при вводе команды или ключа, вы не должны столкнуться с какими-либо ошибками. Если это так, просто проследите свои шаги и выполните каждый шаг снова, чтобы увидеть, в чем проблема. Это простой способ выяснить, откуда возникла проблема, и вы можете легко исправить ее и правильно установить соединение.

Похожие записи

Интернет упростил отправку и получение данных, но даже если ваши данные…

Ваш динамик Sonos выдает ошибку 1002? Могут быть некоторые причины, которые…

При обновлении приложения Sonos вы можете столкнуться со многими ошибками. Эти ошибки могут…

Plink (PuTTY Link) — это средство подключения из командной строки, аналогичное ssh в UNIX. Он в основном используется для автоматизированных операций, таких как предоставление CVS доступа к репозиторию на удаленном сервере.

Plink, вероятно, не то, что вам нужно, если вы хотите запустить интерактивный сеанс в окне консоли.

7.1 Запуск Plink

Plink — это приложение командной строки. Это означает, что вы не можете просто дважды щелкнуть его значок, чтобы запустить его, и вместо этого вам нужно открыть окно консоли. В Windows 95, 98 и ME это называется «приглашение MS-DOS», а в Windows NT, 2000 и XP — «командная строка». Он должен быть доступен в разделе «Программы» меню «Пуск».

Чтобы использовать Plink, файл plink.exe должен находиться либо в вашем PATH, либо в вашем текущем каталоге. Чтобы добавить каталог, содержащий Plink, в переменную среды PATH, введите в окне консоли:

Это будет работать только в течение всего времени жизни конкретного окна консоли. Для более постоянной установки PATH в Windows NT, 2000 и XP используйте вкладку Environment на панели управления системой. В Windows 95, 98 и ME вам потребуется отредактировать файл AUTOEXEC.BAT, включив в него команду set, подобную приведенной выше.

7.2 Использование Plink

В этом разделе описываются основы использования Plink для интерактивного входа в систему и для автоматизированных процессов.

После того, как у вас появилось окно консоли для ввода, вы можете просто ввести команду plink, чтобы вывести сообщение об использовании. Здесь будет указана используемая вами версия Plink, а также краткое описание того, как использовать Plink:

Как только это сработает, вы готовы использовать Plink.

7.2.1 Использование Plink для интерактивного входа

Чтобы установить простое интерактивное подключение к удаленному серверу, просто введите plink, а затем имя хоста:

После этого вы сможете войти в систему как обычно и запустить сеанс. Вывод, отправленный сервером, будет записан прямо в окно командной строки, которое, скорее всего, не будет интерпретировать управляющие коды терминала так, как этого ожидает сервер. Поэтому, если вы запускаете какие-либо полноэкранные приложения, например, вы можете ожидать появления странных символов в вашем окне. Подобные интерактивные соединения не являются основной задачей Plink.

Чтобы подключиться по другому протоколу, вы можете указать параметры командной строки -ssh , -telnet , -rlogin или -raw . Например, чтобы установить SSH-соединение:

Если вы уже настроили сохраненный сеанс PuTTY, вместо указания имени хоста вы можете указать имя сохраненного сеанса. Это позволяет использовать аутентификацию с открытым ключом, указывать имя пользователя и использовать большинство других функций PuTTY:

(Вы также можете использовать параметр командной строки -load для загрузки сохраненного сеанса; см. раздел 3.8.3.1. Если вы используете -load , сохраненный сеанс существует и указывает имя хоста, вы также не можете указать хост или аргумент user@host - он будет рассматриваться как часть удаленной команды.)

7.2.2 Использование Plink для автоматического подключения

Обычно Plink используется с протоколом SSH, чтобы вы могли напрямую общаться с программой, работающей на сервере. Для этого вы должны убедиться, что Plink использует протокол SSH. Это можно сделать несколькими способами:

  • Используйте параметр -ssh, как описано в разделе 7.2.1.
  • Настройте сохраненный сеанс PuTTY, в котором описывается сервер, к которому вы подключаетесь, а также указывается протокол SSH.
  • Задайте для переменной среды Windows PLINK_PROTOCOL слово ssh .

Обычно Plink не вызывается пользователем напрямую, а запускается автоматически другим процессом. Поэтому обычно вы не хотите, чтобы Plink запрашивал у вас имя пользователя или пароль.

Далее вам, вероятно, придется избегать различных интерактивных подсказок, которые может создавать Plink. Вам может быть предложено подтвердить ключ хоста сервера, к которому вы подключаетесь, ввести имя пользователя или ввести пароль.

Чтобы избежать запроса ключа хоста сервера при использовании Plink для автоматического подключения, сначала следует установить вручную подключение (используя PuTTY или Plink) к тому же серверу, проверить хост ключ (дополнительную информацию см. в разделе 2.2) и выберите Да, чтобы добавить ключ хоста в реестр. После этого команды Plink, подключающиеся к этому серверу, не должны выдавать запрос ключа хоста, если ключ хоста не изменится.

Чтобы не запрашивать имя пользователя, вы можете:

Чтобы избежать запроса пароля, почти наверняка следует настроить аутентификацию с открытым ключом. (Общие сведения об аутентификации с открытым ключом см. в главе 8.) Опять же, вы можете сделать это двумя способами:

  • Настройте сохраненный сеанс PuTTY, который описывает сервер, к которому вы подключаетесь, а также указывает файл закрытого ключа (см. раздел 4.20.7). Чтобы это работало без запроса, у вашего закрытого ключа не должно быть кодовой фразы.
  • Сохраните закрытый ключ в Pageant. Дополнительную информацию см. в главе 9.

После того, как вы все это сделаете, вы сможете запустить удаленную команду на сервере SSH и заставить ее выполняться автоматически без запроса:

Или, если вы настроили сохраненный сеанс со всеми данными подключения:

Затем вы можете настроить другие программы для запуска этой команды Plink и взаимодействия с ней, как если бы это был процесс на сервере.

7.2.3 Параметры командной строки Plink

Plink поддерживает все общие параметры командной строки, поддерживаемые инструментами PuTTY. Описание этих опций см. в разделе 3.8.3.

Plink также поддерживает некоторые собственные параметры. В следующих разделах описываются специальные параметры командной строки Plink.

7.2.3.1 -batch: отключить все интерактивные подсказки

Если вы используете параметр -batch, Plink никогда не будет выдавать интерактивную подсказку при установлении соединения. Например, если ключ хоста сервера недействителен (см. раздел 2.2), то соединение будет просто прервано, вместо того, чтобы спросить вас, что делать дальше.

Это может улучшить поведение Plink, когда он используется в автоматических скриптах: при использовании -batch , если что-то пойдет не так во время подключения, пакетное задание не зависнет, а завершится ошибкой.

7.2.3.2 -s : удаленная команда является подсистемой SSH

Если вы укажете параметр -s, Plink передает указанную команду как имя «подсистемы» SSH, а не как обычную командную строку.

(Этот параметр имеет смысл только для протокола SSH-2.)

7.3 Использование Plink в пакетных файлах и сценариях

После того как вы настроили Plink для входа на удаленный сервер без каких-либо интерактивных подсказок (см. раздел 7.2.2), вы можете использовать его для множества сценариев и пакетных задач. Например, чтобы запустить резервное копирование на удаленной машине, вы можете использовать такую ​​команду:

Или, возможно, вы хотите получить все строки системного журнала, относящиеся к определенной веб-области:

Любую неинтерактивную команду, которую вы могли бы с пользой запустить в командной строке сервера, вы можете таким образом запустить в пакетном файле с помощью Plink.

7.4 Использование Plink с CVS

Чтобы использовать Plink с CVS, необходимо установить переменную среды CVS_RSH так, чтобы она указывала на Plink:

Вам также необходимо обеспечить возможность подключения к удаленному хосту без каких-либо интерактивных подсказок, как описано в разделе 7.2.2.

Тогда вы сможете запустить CVS следующим образом:

Если вы указали имя пользователя в своем сохраненном сеансе, вам даже не нужно указывать часть «пользователь», и вы можете просто сказать:

7.5 Использование Plink с WinCVS

Plink также можно использовать с WinCVS. Во-первых, сделайте так, чтобы Plink мог подключаться к удаленному хосту неинтерактивно, как описано в разделе 7.2.2.

Затем в WinCVS вызовите диалоговое окно «Настройки» из меню Администрирование и перейдите на вкладку «Порты». Установите флажок «Проверить альтернативное имя rsh» и в текстовом поле справа введите полный путь к plink.exe. Выберите «ОК» в диалоговом окне «Настройки».

Далее выберите «Командная строка» в меню «Администратор» WinCVS и введите команду CVS, как описано в разделе 7.4, например:

или (если вы используете сохраненный сеанс):

Выберите папку, в которую хотите извлечь, с помощью кнопки «Изменить папку» и нажмите «ОК», чтобы извлечь модуль. Как только вы разблокируете модули, WinCVS с радостью вызовет plink из графического интерфейса для операций CVS.

Если вы хотите оставить отзыв об этом руководстве или о самих инструментах PuTTY, см. страницу отзывов.


Снимок с опциями приведен ниже. (Нажмите на изображение, чтобы увидеть варианты более четко).

  1. Откройте указанную выше ссылку для скачивания и нажмите Выпуски бинарного установщика
  2. .
  3. Загрузить ZIP-файл
  4. Разархивируйте файл и запустите файл setupssh.exe
  5. Выберите параметры в соответствии с вашими требованиями. Отмените выбор серверного компонента, если вам нужна только клиентская версия.
  6. После завершения установки откройте командное окно и запустите ssh

Если вам нужен ssh-клиент с графическим интерфейсом, вы можете использовать Putty.exe. Используйте диспетчер соединений Putty в сочетании с Putty, чтобы иметь сеансы ssh с вкладками, такие как Terminal в Linux.

Хорошая информация, но с Windows (по крайней мере, 7) OpenSSH для клиента Windows Игнорирует закрытые ключи для аутентификации, потому что права доступа к файлам Linux всегда читаются как 0644, что бы вы ни делали!!
Раздражает - если вы знаете решение, кроме использования Cygwin, пожалуйста, напишите.
Спасибо!

ПС. и да, я попробовал порты Windows ACL и chmod, они не влияют на то, что видит двоичный файл.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@
@ ВНИМАНИЕ: ФАЙЛ ЧАСТНОГО КЛЮЧА НЕ ЗАЩИЩЕН! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@
Разрешения 0644 для «C:/users/User/desktop/openssh-id_rsa» слишком открыты.
Рекомендуется, чтобы ваши файлы закрытого ключа НЕ были доступны другим.
Этот закрытый ключ будет проигнорирован.

Хорошо, я нашел решение моей вышеуказанной проблемы, чтобы использовать ключ командной строки аутентификации ssh в Windows 7:
Просто используйте copssh

В этой командной строке введите:
cd «c:\program files\cwrsync\bin»
и нажмите Enter. Затем введите:
ssh-keygen -t rsa -N ”
примите расположение по умолчанию, предполагаемый корень '/' - это папка Program Files\ICW, так что вы можете использовать эту команду даже из обычная подсказка Windows CMD, и она работает!:

C:\Program File\ICW\bin>ssh -i /.ssh/id_rsa [email protected] время безотказной работы
и это работает, о боже мой. Это OpenSSH_5.9p1, OpenSSL 0.9.8r 8 февраля 2011 г.

Плохо, я скопировал инструкции, там одна ошибка пути, это:

cd "c:\program files\cwrsync\bin"

cd "c:\program files\icw\bin"

Это безопасно? Не приведет ли это к вирусной атаке.
Кроме того, безопасно ли использовать замазку?

Внимание, установка удаляет все в переменной окружения PATH и заменяет ее путем к клиентской строке ssh cmd.

Привет, ребята! Как вы решаете проблему с попыткой поиска «/home/*»? Программа не может записать или прочитать файл known_hosts, т.к. относится не к "C:\Users\MyCoolUser\.ssh", а к "/home/MyCoolUser/.ssh"(. Подскажите, пожалуйста, т.к. пароль 37 символов постоянно не хочет вводить.

@mary
Я считаю, что putty и ssh можно использовать для себя.
Конечно, вам решать или расследовать.
Вы можете прочитать исходный код openssh, но я думаю, что шпатлевка не предлагает такой возможности.

Просто нужно подтверждение, что мне нужно запускать команды в удаленной системе Windows из другой системы Windows, не могли бы вы сообщить мне, как я могу добиться этого с помощью открытого ssh

Это не работает с более новыми реализациями алгоритмов, поэтому новый тип серверов с более сильным kex не будет работать…

Вы не должны рекламировать это, в установке OpenSSH есть серьезная ошибка, которая может повредить вашу систему. При установке перезаписывается системная переменная среды PATH. Что-то, что нелегко перенастроить, если у вас нет исходного пути.

Читайте также: