如何使用ssh密钥的方式实现无密码scp传输文件(Linux to Windows)

如何使用ssh密钥的方式实现无密码scp传输文件(Linux to Windows)

要实现从 Linux 到 Windows 使用 SSH 密钥进行无密码的 scp 文件传输,你需要按照以下步骤操作:

1. 在 Linux 上生成 SSH 密钥对

如果你还没有生成 SSH 密钥对,可以使用以下命令生成:

ssh-keygen -t rsa

按照提示进行操作,通常可以直接按回车键接受默认设置。

2. 将公钥复制到 Windows 上

你需要将 Linux 上生成的公钥 (~/.ssh/id_rsa.pub) 复制到 Windows 上的 authorized_keys 文件中。这一步通常涉及以下操作:

在 Windows 上设置 OpenSSH 服务
  1. 安装 OpenSSH: 确保 Windows 上安装了 OpenSSH 服务器。可以通过 Windows 设置中的“应用和功能”来安装它,或者使用 PowerShell 命令:

    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    
  2. 启动 OpenSSH 服务:

    Start-Service sshd
    

    并设置为开机自启:

    Set-Service -Name sshd -StartupType 'Automatic'
    
  3. 创建 .ssh 目录和 authorized_keys 文件:

    在 Windows 上的用户主目录下(例如 C:\Users\<YourUsername>),创建 .ssh 目录并设置适当的权限:

    mkdir C:\Users\<YourUsername>\.ssh
    

    .ssh 目录中创建 authorized_keys 文件,并将 Linux 上的公钥内容添加到其中:

    notepad C:\Users\<YourUsername>\.ssh\authorized_keys
    

    将公钥内容粘贴到 authorized_keys 文件中并保存。

  4. 设置文件权限:

    确保 .ssh 目录和 authorized_keys 文件的权限设置正确:

    icacls C:\Users\<YourUsername>\.ssh /inheritance:r
    icacls C:\Users\<YourUsername>\.ssh /grant:r <YourUsername>:F
    icacls C:\Users\<YourUsername>\.ssh\authorized_keys /inheritance:r
    icacls C:\Users\<YourUsername>\.ssh\authorized_keys /grant:r <YourUsername>:F
    

3. 从 Linux 使用 SCP 进行文件传输

现在你可以从 Linux 上使用 scp 命令进行文件传输了:

scp /path/to/local/file <YourUsername>@<WindowsIPAddress>:/path/to/remote/directory

这将使用 SSH 密钥进行身份验证,无需输入密码。

4. 如果你Windows上使用的是Administrator用户,并且 Administrator 用户在 administrators 组中

你需要将 Linux 上的公钥内容添加到这个文件中 C:\ProgramData\ssh\administrators_authorized_keys

因为这是配置文件 C:\ProgramData\ssh\sshd_config中的默认配置

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

如果遇到任何问题,请确保 OpenSSH 服务在 Windows 上运行正常,并且 SSH 密钥权限设置正确。

  • 20
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日日行不惧千万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值