一、問題描述
最近在測試github的連接時,在終端或命令行窗口中,輸入以下命令測試你的 SSH 連接是否正常:
ssh -T git@github.com
如果一切正常,命令輸出以下信息:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
其中 username 是你的 GitHub 用戶名。
但是我的命令出錯:
二、問題嘗試解決
2.1 ssh的問題
這個錯誤提示說明我的操作系統(tǒng)沒有找到 ssh 命令,可能是因為我的計算機(jī)沒有安裝 OpenSSH。
可以嘗試以下步驟:
-
打開 Windows PowerShell 或者命令提示符(cmd)窗口。
-
輸入以下命令,安裝 OpenSSH:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
如果出現(xiàn)提示要求確認(rèn),輸入 Y 并按回車鍵。
但是我的操作引起報錯!
C:\Users\XiaoWang>Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
'Add-WindowsCapability' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
這個錯誤提示說明你的操作系統(tǒng)沒有找到 Add-WindowsCapability 命令,可能是因為你的計算機(jī)版本太老,不支持安裝 OpenSSH。
可以嘗試以下方法:
- 檢查你的計算機(jī)是否運(yùn)行的是 Windows 10 1709 或更新的版本,只有這些版本才支持安裝 OpenSSH。
- 如果你的計算機(jī)符合條件,但是 Add-WindowsCapability 命令仍然無法使用,可以嘗試手動安裝 OpenSSH。
- 在 GitHub 上有一個名為 “PowerShell/Win32-OpenSSH” 的項目,提供了 Windows 平臺的 OpenSSH 安裝包,你可以前往該項目頁面下載并安裝 OpenSSH。
該項目頁面的鏈接為:
https://github.com/PowerShell/Win32-OpenSSH/releases
你可以根據(jù)你的計算機(jī)系統(tǒng)版本和位數(shù)選擇對應(yīng)的安裝包下載。安裝完成后,重新打開 PowerShell 或者命令提示符窗口,再次嘗試 ssh 命令,確認(rèn)是否安裝成功。
2.2 如何手動安裝
如果你已經(jīng)手動下載了 OpenSSH 的安裝包,那么你可以按照以下步驟進(jìn)行安裝:
- 解壓下載的安裝包文件,找到其中的 install 腳本。
- 右鍵點擊 install 腳本文件,選擇 “以管理員身份運(yùn)行”,然后按照提示進(jìn)行安裝。
- 安裝完成后,重新打開 PowerShell 或者命令提示符窗口,再次嘗試 ssh 命令,確認(rèn)是否安裝成功。
但是我沒有找到這個腳本。
嘗試以下方法:
- 打開 PowerShell 或者命令提示符窗口,使用 cd 命令進(jìn)入 OpenSSH 安裝包的目錄。
- 在該目錄下按住 Shift 鍵,同時點擊鼠標(biāo)右鍵,會出現(xiàn)一個菜單,其中包含了 “在此處打開 PowerShell 窗口” 或者 “在此處打開命令提示符窗口” 選項,你可以選擇其中的任意一項打開對應(yīng)的窗口。
- 在打開的窗口中輸入 .\install 命令,按照提示進(jìn)行安裝。
這種方法相當(dāng)于以管理員身份運(yùn)行 PowerShell 或者命令提示符窗口,以便你能夠運(yùn)行 install 腳本并完成 OpenSSH 的安裝。
但是繼續(xù)出錯,install 腳本沒找到。
2.3 install 腳本找不到
如果你手動下載了 OpenSSH 的安裝包,但是找不到 install 腳本,可能是因為下載的安裝包不同。以下是一些可能的解決方案:
- 如果你下載的是 OpenSSH 的 Windows 安裝程序(OpenSSH-Win64.zip),那么你可以雙擊該程序并按照提示進(jìn)行安裝。安裝完成后,你應(yīng)該可以在 PowerShell 或者命令提示符窗口中使用 ssh 命令了。
- 如果你下載的是 OpenSSH 的源代碼,那么你需要先編譯該源代碼,并在編譯完成后手動安裝 OpenSSH。編譯和安裝過程可能會比較復(fù)雜,請參考官方文檔或者其他相關(guān)資料進(jìn)行操作。
- 如果你下載的是 OpenSSH 的二進(jìn)制文件(.exe 文件),那么你可能需要查看該文件的使用說明或者手冊,以了解如何進(jìn)行安裝和配置。不同的二進(jìn)制文件可能具有不同的安裝方式和配置方法,需要根據(jù)具體情況進(jìn)行操作。
2.4 power shell 開始報錯
首次報錯內(nèi)容為:
安裝最新的 PowerShell,了解新功能和改進(jìn)!https://aka.ms/PSWindows
. : 無法加載文件 C:\Users\XiaoWang\Documents\WindowsPowerShell\profile.ps1,因為在此系統(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,
請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\XiaoWang\Documents\WindowsPowerShell\profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\XiaoWang>
這個錯誤是因為 PowerShell 執(zhí)行策略限制了在此系統(tǒng)上運(yùn)行腳本。為了解決這個問題,你可以嘗試以下方法:
- 打開 PowerShell,以管理員身份運(yùn)行,然后輸入以下命令:
Set-ExecutionPolicy RemoteSigned
這將設(shè)置 PowerShell 執(zhí)行策略,允許在此系統(tǒng)上運(yùn)行本地簽名的腳本。
- 如果你不想放寬執(zhí)行策略,可以手動修改 profile.ps1 文件的權(quán)限,以允許它在此系統(tǒng)上運(yùn)行。你可以使用以下命令將其修改為允許運(yùn)行:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
這將允許當(dāng)前用戶在此系統(tǒng)上運(yùn)行任何腳本。
請注意,在更改執(zhí)行策略或修改文件權(quán)限之前,請仔細(xì)考慮安全性風(fēng)險,并確保你知道你所做的事情。
但是還是報錯:
報錯內(nèi)容為:
安裝最新的 PowerShell,了解新功能和改進(jìn)!https://aka.ms/PSWindows
Invoke-Expression : 所在位置 行:1 字符: 536
+ ... em32;C:\Users\XiaoWang\AppData\Local\Microsoft\WindowsApps;"%CUDA_LIB ...
+ ~
必須在“%”運(yùn)算符后面提供一個值表達(dá)式。
所在位置 行:1 字符: 536
+ ... XiaoWang\AppData\Local\Microsoft\WindowsApps;"%CUDA_LIB_PATH%;%CUDA_B ...
+ ~~~~~~~~~~~~~~
表達(dá)式或語句中包含意外的標(biāo)記“CUDA_LIB_PATH%”。
所在位置 D:\Anaconda\shell\condabin\Conda.psm1:76 字符: 9
+ Invoke-Expression -Command $activateCommand;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : ExpectedValueExpression,Microsoft.PowerShell.Commands.InvokeExpressionCommand
加載個人及系統(tǒng)配置文件用了 1287 毫秒。
該錯誤似乎是由于環(huán)境變量中的CUDA_LIB_PATH和CUDA_BIN_PATH未定義導(dǎo)致的。請檢查您的環(huán)境變量,確保這些變量已正確定義。另外,建議您升級您的Anaconda和PowerShell版本以獲得更好的支持和性能。
您可以嘗試手動添加這些環(huán)境變量。打開系統(tǒng)屬性,然后點擊環(huán)境變量,找到CUDA_LIB_PATH和CUDA_BIN_PATH,然后將其值更改為正確的路徑。如果這些變量不存在,請單擊“新建”按鈕并創(chuàng)建它們。另外,建議您升級您的Anaconda和PowerShell版本以獲得更好的支持和性能。
CUDA_LIB_PATH和CUDA_BIN_PATH的路徑怎么看?
要查看CUDA_LIB_PATH和CUDA_BIN_PATH的路徑,可以按照以下步驟進(jìn)行:
- 打開NVIDIA CUDA Toolkit的安裝目錄,通常安裝在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA。
- 在CUDA安裝目錄下,您會看到版本號,例如“v11.4”。進(jìn)入該目錄。
- 在該目錄下,您將看到bin和lib文件夾。這些文件夾的路徑即為CUDA_BIN_PATH和CUDA_LIB_PATH。
- 可以將這些路徑添加到環(huán)境變量中,以便在使用CUDA時能夠正常工作。
但是繼續(xù)報錯:
Invoke-Expression : 所在位置 行:1 字符: 662
+ ... nvvp;C:\Users\XiaoWang\AppData\Local\Microsoft\WindowsApps;"%CUDA_LIB ...
+ ~
必須在“%”運(yùn)算符后面提供一個值表達(dá)式。
所在位置 行:1 字符: 662
+ ... XiaoWang\AppData\Local\Microsoft\WindowsApps;"%CUDA_LIB_PATH%;%CUDA_B ...
+ ~~~~~~~~~~~~~~
表達(dá)式或語句中包含意外的標(biāo)記“CUDA_LIB_PATH%”。
所在位置 D:\Anaconda\shell\condabin\Conda.psm1:76 字符: 9
+ Invoke-Expression -Command $activateCommand;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : ExpectedValueExpression,Microsoft.PowerShell.Commands.InvokeExpressionCommand
這個錯誤信息與之前的一條類似,提示“表達(dá)式或語句中包含意外的標(biāo)記“CUDA_LIB_PATH%”。”,看起來也與CUDA相關(guān)。請確認(rèn)您的CUDA環(huán)境變量是否正確設(shè)置,并檢查在您的環(huán)境變量中是否包含了不正確的語法。如果有,請刪除并重新設(shè)置正確的環(huán)境變量。另外,也請確保您的Anaconda環(huán)境變量設(shè)置正確。
如何修改呢?
可以在Anaconda Prompt中運(yùn)行以下命令,修改環(huán)境變量:
setx CUDA_LIB_PATH "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib\x64"
setx CUDA_BIN_PATH "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin"
這里假設(shè)CUDA的安裝路徑為"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1",你可以根據(jù)實際情況修改路徑。修改完畢后,需要關(guān)閉當(dāng)前的Anaconda Prompt窗口,重新打開一個新的窗口使環(huán)境變量生效。
這個錯誤信息顯示在 D:\Anaconda\shell\condabin\Conda.psm1 的第76行,似乎是一個 Anaconda 的配置文件中有問題,建議暫時先忽略這個錯誤,因為這個錯誤不會影響您在 PowerShell 中進(jìn)行其他操作。如果需要繼續(xù)排查這個錯誤,您可以檢查該配置文件中是否有錯誤,或者卸載 Anaconda 后重新安裝。
這個錯誤似乎是由于某些字符未正確轉(zhuǎn)義或引號未正確使用導(dǎo)致的。您可以檢查您的代碼中涉及的路徑和命令,確保它們正確引用了相關(guān)的文件和文件夾,并且引號和轉(zhuǎn)義字符正確使用。
例如,在您之前提供的錯誤中,引號似乎被放錯了位置,應(yīng)該將其放在包含路徑的引號中。同時,路徑中包含空格,可能需要使用引號將其括起來。
這里不再修改!
2.5 繼續(xù)安裝ssh
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
命令報錯:
Add-WindowsCapability : 請求的操作需要提升。
所在位置 行:1 字符: 1
+ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-WindowsCapability], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.AddWindowsCapabilityCommand
這個錯誤提示是說需要使用管理員權(quán)限運(yùn)行PowerShell命令。您可以按照以下步驟運(yùn)行PowerShell并以管理員身份運(yùn)行該命令:
- 按下 Windows 鍵+X,選擇 Windows PowerShell(管理員)。
- 在彈出的窗口中,輸入命令 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 并按回車鍵。
- 等待命令運(yùn)行完畢。如果一切順利,該命令將會成功安裝 OpenSSH 客戶端功能。
到這里,SSH安裝成功!
三、輸入 ssh 再報錯
我繼續(xù)輸入ssh,沒想到再次報錯:
看起來 OpenSSH 已經(jīng)成功地安裝在你的系統(tǒng)上。但是,在運(yùn)行 ssh 命令之前,你需要在 PowerShell 窗口中打開一個新的終端窗口(因為新的 PATH 環(huán)境變量還沒有應(yīng)用到當(dāng)前窗口)。你可以在 PowerShell 窗口中運(yùn)行以下命令來打開一個新的終端窗口:
cmd
這將在當(dāng)前 PowerShell 窗口中啟動一個新的命令提示符窗口,但是該窗口已經(jīng)更新了 PATH 環(huán)境變量,所以現(xiàn)在你應(yīng)該可以在該窗口中運(yùn)行 ssh 命令了。
看起來OpenSSH客戶端已成功安裝,但您在命令提示符或PowerShell中使用ssh命令時仍然遇到問題。這可能是由于路徑環(huán)境變量未正確配置所導(dǎo)致的。請嘗試在命令提示符或PowerShell中使用以下命令,將OpenSSH目錄添加到系統(tǒng)的路徑環(huán)境變量中:
setx /M PATH "%PATH%;C:\Windows\System32\OpenSSH"
然后關(guān)閉并重新打開命令提示符或PowerShell窗口,再次嘗試運(yùn)行ssh命令。如果仍然遇到問題,請確認(rèn)OpenSSH客戶端的安裝路徑是否為C:\Windows\System32\OpenSSH,如果不是,請將上面的命令中的路徑替換為實際路徑。
但是依舊報錯:
(base) C:\Users\XiaoWang>setx /M PATH "%PATH%;C:\Windows\System32\OpenSSH"
錯誤: 拒絕訪問注冊表路徑。
這個錯誤通常是由于缺少管理員權(quán)限導(dǎo)致的。請嘗試在管理員權(quán)限下打開命令行窗口,并重新運(yùn)行命令。具體操作方法如下:
- 在Windows開始菜單中找到“命令提示符”,右鍵單擊它,然后選擇“以管理員身份運(yùn)行”選項。
- 在管理員權(quán)限的命令行窗口中,輸入以下命令,然后按Enter鍵執(zhí)行:
setx /M PATH "%PATH%;C:\Windows\System32\OpenSSH"
- 關(guān)閉命令行窗口,并重新打開一個新的命令行窗口。
- 在新的命令行窗口中,輸入“ssh”命令,看看是否能夠正常使用OpenSSH客戶端。
繼續(xù)報錯:
嘗試在 PowerShell 中執(zhí)行以下命令,以確保 ssh 已被添加到環(huán)境變量中:
$env:Path
該命令將顯示當(dāng)前的環(huán)境變量路徑。請確保它包含 C:\Windows\System32\OpenSSH 目錄,因為該目錄包含 ssh.exe 文件。
如果路徑中不包含該目錄,請確保您已以管理員身份運(yùn)行 PowerShell 并正確執(zhí)行了 setx 命令,如果仍然出現(xiàn)問題,請嘗試重新啟動計算機(jī)。
然而還是不行:
從您提供的信息來看,OpenSSH似乎已安裝成功,但是系統(tǒng)仍然無法找到ssh命令。這可能是由于系統(tǒng)環(huán)境變量未正確設(shè)置導(dǎo)致的。您可以嘗試將OpenSSH路徑添加到系統(tǒng)環(huán)境變量中,以使系統(tǒng)能夠找到ssh命令。
首先,您需要在管理員模式下打開PowerShell窗口。然后,運(yùn)行以下命令:
[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Windows\System32\OpenSSH", [System.EnvironmentVariableTarget]::Machine)
嘗試使用下面的命令在當(dāng)前會話中更新 Path 環(huán)境變量,使得系統(tǒng)能夠正確找到 ssh 命令:
$env:Path += ";C:\Windows\System32\OpenSSH"
然后再次運(yùn)行 ssh 命令,應(yīng)該就能正常使用了。如果還有問題,請嘗試在新的命令提示符窗口中嘗試。
順利成功!
測試一下能否遠(yuǎn)程連接上實驗室的電腦:文章來源:http://www.zghlxwxcb.cn/news/detail-462399.html
順利連接成功!文章來源地址http://www.zghlxwxcb.cn/news/detail-462399.html
到了這里,關(guān)于【W(wǎng)in11 | SSH】詳細(xì)教你如何在Windows 11 下完成OpenSSH的安裝(保姆級攻略)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!