解决Windows 10上SSH上传密钥时出现“无法将'ssh-copy-id'项识别”的错误

作者:谁偷走了我的奶酪2024.01.29 14:49浏览量:10

简介:本文将介绍如何解决在Windows 10上使用SSH上传密钥时出现的“无法将'ssh-copy-id'项识别”的错误。通过生成SSH密钥对,并在PowerShell中执行特定命令,可以成功上传公钥并解决此问题。

在Windows 10上使用SSH上传密钥时,可能会遇到“无法将’ssh-copy-id’项识别”的错误。这通常是因为SSH客户端未正确安装或配置导致的。下面是一种解决方案,帮助您解决这个问题。
首先,确保您已经安装了适用于Windows的SSH客户端。可以在Windows功能中启用它,或者使用适用于Windows的第三方SSH客户端,如PuTTY或Git Bash。
接下来,执行以下步骤:

  1. 打开PowerShell以管理员身份运行。您可以在开始菜单中搜索“PowerShell”,然后右键单击“Windows PowerShell”并选择“以管理员身份运行”。
  2. 在PowerShell中,执行以下命令生成SSH密钥对:
    ssh-keygen -t rsa
    这将生成一对公钥和私钥文件。默认情况下,私钥文件将保存在“~/.ssh/id_rsa”,公钥文件将保存在“~/.ssh/id_rsa.pub”。
  3. 现在,我们需要将公钥文件上传到远程服务器上。在PowerShell中执行以下命令:
    function ssh-copy-id([string]$userAtMachine, $args) {
    $publicKey = “$ENV:USERPROFILE/.ssh/id_rsa.pub”
    if(!(Test-Path $publicKey)) {
    Write-Error “ERROR: failed to open ID file ‘{$publicKey}’: No such file”
    } else {
    & cat $publicKey | ssh $args $userAtMachine “umask 077; test -d .ssh || mkdir .ssh; cat >> .ssh/authorized_keys || exit 1”
    }
    }
    ssh-copy-id username@ip
    请将“username”替换为您在远程服务器上的用户名,将“ip”替换为远程服务器的IP地址或主机名。
    这个命令将在远程服务器上创建或更新一个名为“authorized_keys”的文件,并将您的公钥添加到其中。这样,您就可以使用SSH连接到远程服务器而无需输入密码了。
    请注意,上述解决方案假设您已经具有对远程服务器的访问权限。如果您没有访问权限,请与系统管理员联系以获取帮助。
    此外,如果您使用的是其他SSH客户端或操作系统,解决方案可能会有所不同。请根据您所使用的工具和环境进行适当的调整。
    总结:通过生成SSH密钥对并在PowerShell中执行特定命令,您可以解决在Windows 10上使用SSH上传密钥时出现的“无法将’ssh-copy-id’项识别”的错误。现在您可以成功上传公钥并使用SSH连接到远程服务器了。希望这个解决方案能够帮助您解决SSH连接问题并提高您的工作效率。
article bottom image

相关文章推荐

发表评论