> 网络管理 > ssh-copy-id

ssh-copy-id: 复制 SSH 公钥

ssh-copy-id 命令是一个实用工具,可轻松安全地将本地系统的 SSH 公钥添加到远程服务器的 authorized_keys 文件中。这允许您设置无密码 SSH 连接,并减少手动复制密钥时可能出现的错误。

概述

ssh-copy-id 通过自动化 SSH 公钥认证的设置过程,帮助用户无需密码即可安全地连接到远程服务器。此命令默认使用如 ~/.ssh/id_rsa.pub 或 ~/.ssh/id_dsa.pub 等默认公钥文件,但也可以指定特定的密钥文件。

主要功能

  • 将 SSH 公钥复制到远程服务器
  • 自动设置 authorized_keys 文件的权限
  • 支持建立无密码 SSH 连接环境
  • 多次运行也不会重复添加密钥(幂等性)

主要选项

ssh-copy-id 命令提供了一些有用的选项,允许您精细控制密钥复制过程。

密钥和连接设置

执行模式

生成的命令:

请尝试组合命令。

描述:

`ssh-copy-id` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

使用 ssh-copy-id 将 SSH 公钥复制到远程服务器的各种场景。

基本用法

ssh-copy-id user@remote_host

将默认公钥(例如 ~/.ssh/id_rsa.pub)复制到用户 'user' 在 'remote_host' 的服务器上。系统会提示您输入密码。

指定特定密钥文件

ssh-copy-id -i ~/.ssh/my_custom_key.pub user@remote_host

使用指定的公钥文件(例如 ~/.ssh/my_custom_key.pub)复制密钥。

使用非标准 SSH 端口

ssh-copy-id -p 2222 user@remote_host

当远程服务器在非默认端口(例如 2222)上运行 SSH 服务时使用。

组合多个选项

ssh-copy-id -i ~/.ssh/another_key.pub -p 2222 user@remote_host

使用特定密钥文件通过非标准端口复制密钥的示例。

提示与注意事项

使用 ssh-copy-id 时的一些有用提示和需要注意的事项。

准备工作

在使用 ssh-copy-id 之前,请确认以下事项。

  • 生成公钥: 如果您还没有 SSH 密钥对,则需要先使用 `ssh-keygen` 命令生成。
  • 远程服务器访问: 您需要有密码或其他认证方式来访问远程服务器。ssh-copy-id 在此初始认证过程中会要求输入密码。

权限问题

ssh-copy-id 会自动为远程服务器上的 `~/.ssh` 目录和 `~/.ssh/authorized_keys` 文件设置正确的权限。如果您是手动复制密钥,则需要使用 `chmod 700 ~/.ssh` 和 `chmod 600 ~/.ssh/authorized_keys` 命令来设置正确的权限。

幂等性 (Idempotency)

ssh-copy-id 不会重复添加已复制的密钥。因此,即使多次运行,authorized_keys 文件也不会累积重复的密钥。这是一个非常方便的特性,适合在脚本中使用。


相同类别命令