windows无法使用ssh-copy-id解决办法。

windows无法使用ssh-copy-id解决办法。

1.在powershell中执行脚本

在powershell下执行如下脚本就可以了
{IP-ADDRESS-OR-FQDN}写ip地址或者域名或者用户@ip地址或域名

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"

然后输入密码
在这里插入图片描述

2.powershell下执行脚本 。

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了。
输入密码就可以了。
在这里插入图片描述

3.自己复制文件到linux地址上。

https://www.jianshu.com/p/06f3b2d1ebdc

### 在 Windows使用 `ssh-copy-id` 命令 由于 Windows 并未默认提供 `ssh-copy-id` 工具,因此需要采取其他方法来实现相同的功能。以下是几种可行的方法: #### 方法一: 使用 Git Bash 或 WSL (Windows Subsystem for Linux) 安装 Git Bash 或者启用并配置好 WSL 后,在这些环境中可以直接运行类 Unix 的命令。 对于 Git Bash 和 WSL 用户来说,只需打开对应的终端程序,并按照常规方式调用 `ssh-copy-id` 即可[^1]。 ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip_address ``` #### 方法二: 手动复制公钥至远程主机 当无法直接利用 `ssh-copy-id` 时,可以通过手动操作完成同样的任务。具体步骤如下所示: 1. **生成 SSH 密钥对** 如果尚未创建过 SSH 秘钥,则需先执行此步。可以在 PowerShell 中通过 OpenSSH 客户端来进行这项工作。 ```powershell ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 2. **获取本地用户的公钥** 将生成好的 `.pub` 文件中的内容读取出来准备粘贴给远端服务器。 ```powershell Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub" ``` 3. **连接到目标机器并将公钥追加到授权密钥列表中** 登录到想要设置无密码访问的目标机器上,编辑或新建 `~/.ssh/authorized_keys` 文件,把之前获得的内容添加进去。 ```bash echo 'ssh-rsa AAAAB... your_email@example.com' >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` 这种方法虽然稍微复杂一点,但是能够达到与 `ssh-copy-id` 类似的结果[^5]。 #### 方法三: 利用第三方工具模拟 `ssh-copy-id` 某些情况下也可以借助一些专门为此设计的小型应用程序或者脚本来简化流程。例如 PuTTY Suite 提供了一个名为 Pageant 的代理服务可以帮助管理私钥;而 WinSCP 这样的图形界面 SFTP 客户端也支持批量上传文件夹内的所有 .pub 文件作为已知主机的信任凭证[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值