ssh-copy-id命令
Eave
2026.01.22
ssh-copy-id 使用本地可用的密钥授权登录远程计算机。
ssh-copy-id 可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上。ssh-copy-id 也会给远程主机的用户主目录(home)和 ~/.ssh 和 ~/.ssh/authorized_keys 设置合适的权限。
命令格式:ssh-copy-id [-n] [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname
选项说明
-i:指定认证文件(公钥)
-f:强制模式
-n:测试,不实际替换
-p:指定端口
-o:指定其他 ssh参数
使用默认公钥登录:将本地默认公钥~/.ssh/id_rsa.pub复制到远程服务器192.168.1.110的user账户下。
ssh-copy-id user@192.168.1.110
使用指定公钥文件:将自定义公钥~/.ssh/my_other_key.pub复制到远程服务器。
ssh-copy-id -i ~/.ssh/my_other_key.pub user@server
指定端口并强制复制:连接到远程服务器的非标准端口2222,并强制覆盖已存在的公钥。
ssh-copy-id -p 2222 -f user@server
注意事项
身份验证要求:在复制公钥之前,ssh-copy-id 需要通过密码方式对远程服务器进行一次身份验证,以确保操作的合法性。
密钥文件权限:本地的私钥文件(如 ~/.ssh/id_rsa)权限应设置为 400 或 600,否则 SSH 客户端可能会因安全原因忽略该私钥。
重复添加:若多次运行命令且未使用 -f 选项,ssh-copy-id 通常会检查 authorized_keys 文件以避免添加重复的公钥。但如果公钥内容发生变化(如重新生成了密钥对),则可能需要手动清理旧的公钥条目。