概述
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 文件也不会累积重复的密钥。这是一个非常方便的特性,适合在脚本中使用。