1. 描述
ssh-copy-id
是一个方便的工具,用于将本地用户的公钥复制到远程主机的authorized_keys
文件中,以实现 SSH 公钥身份验证。这使得用户可以通过密钥对进行 SSH 登录,而无需输入密码。
2. 语法
语法如下:
ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
-f: force mode -- copy keys without trying to check if they are already installed
-n: dry run -- no keys are actually copied
-h|-?: print this help
其中常用的参数如下:
-i [identity_file]
:可选参数,指定要复制的公钥文件,默认为~/.ssh/id_rsa.pub
。如果你有多个公钥,可以使用此选项指定其他公钥文件。[user@]hostname
:目标主机的用户名和主机名或 IP 地址。
3. 例子
例子1:将默认的公钥文件(~/.ssh/id_rsa.pub
)复制到远程主机node1下:
ssh-copy-id root@node1
例子2:使用不同的公钥文件:
ssh-copy-id -i ~/.ssh/my_other_key.pub root@node1
这些命令会将本地公钥文件复制到远程主机上,如果目标主机上已经存在 authorized_keys
文件,则会在文件末尾添加公钥。如果文件不存在,则会创建该文件,并设置适当的权限。
在复制完成后,你就可以使用密钥对进行 SSH 登录,无需再输入密码。