问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OpenSSH 9.9发布:ssh-copy-id命令迎来重大更新!

创作时间:
作者:
@小白创作中心

OpenSSH 9.9发布:ssh-copy-id命令迎来重大更新!

引用
CSDN
6
来源
1.
https://blog.csdn.net/m0_56923443/article/details/140136722
2.
https://blog.csdn.net/weixin_43268590/article/details/136684546
3.
https://www.openssh.com/
4.
https://undeadly.org/cgi?action=article;sid=20240921181110
5.
https://www.cnblogs.com/Magiclala/p/18370213
6.
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement

OpenSSH 9.9版本于2024年9月20日发布,带来了多项重要更新。其中,ssh-copy-id命令的改进尤为引人注目。本文将详细介绍这一新功能,并结合Windows用户使用ssh-copy-id的常见问题,提供实用的解决方案。

ssh-copy-id的新功能

在OpenSSH 9.9中,ssh-copy-id命令得到了显著增强。以下是主要改进点:

  1. 多密钥支持:现在可以一次性复制多个密钥到远程服务器。这对于使用多个SSH密钥的用户来说是一个重大改进,可以显著简化工作流程。

  2. 批量操作:新增了批量复制密钥的功能,允许用户将多个密钥复制到多个主机,大大提高了系统管理员的工作效率。

  3. 错误处理优化:改进了错误处理机制,当复制密钥失败时,会提供更详细的错误信息,帮助用户快速定位问题。

  4. 配置文件支持:现在可以从SSH配置文件中读取主机信息,使得ssh-copy-id的使用更加灵活便捷。

Windows用户使用ssh-copy-id的解决方案

虽然OpenSSH的更新带来了诸多便利,但Windows用户在使用ssh-copy-id时仍可能遇到一些挑战。以下是几种实用的解决方案:

方法一:使用PowerShell脚本

在PowerShell中运行以下脚本可以实现类似ssh-copy-id的功能:

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/authorized_keys文件中。

方法二:安装Git Bash

Git Bash自带ssh-copy-id命令。下载并安装Git for Windows后,你可以在Git Bash中直接使用该命令。

方法三:手动复制公钥

如果上述方法不可行,可以手动完成操作:

  1. 打开PowerShell,输入以下命令生成SSH密钥(如未生成):
    ssh-keygen -t rsa
    
  2. 复制公钥内容:
    Get-Content ~/.ssh/id_rsa.pub
    
  3. 使用SSH连接到目标服务器,并创建.ssh目录及authorized_keys文件(如果不存在):
    ssh zhangsan@172.17.0.3 'mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys'
    
  4. 将本地公钥追加到远程服务器的authorized_keys文件中:
    Get-Content ~/.ssh/id_rsa.pub | ssh zhangsan@172.17.0.3 'cat >> ~/.ssh/authorized_keys'
    

结语

OpenSSH 9.9的发布带来了ssh-copy-id命令的重大改进,为用户提供了更便捷的密钥管理体验。无论是新增的多密钥支持,还是优化的错误处理机制,都体现了OpenSSH项目组对用户体验的持续关注。对于Windows用户而言,通过上述解决方案,也可以充分享受到这一新功能带来的便利。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号