如何在 Ubuntu 上使用 ssh-copy-id如何在 Ubuntu 上使用 ssh-copy-id如何在 Ubuntu 上使用 ssh-copy-id如何在 Ubuntu 上使用 ssh-copy-id
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 上使用 ssh-copy-id

SSH 的有用工具之一是ssh-copy-id,它用于在远程服务器上安装 SSH 密钥来登录服务器,而无需提供登录密码。因此,使用该工具可以轻松实现使用 SSH 的单点登录和自动无密码登录。如果需要,它会通过创建文件和目录将公钥复制到远程主机的 ~/.ssh/authorized_keys 文件,但不会修改任何现有文件或文件夹的权限。本教程已解释如何使用 ssh-copy-id 命令进行 SSH 连接。

先决条件:

在开始本教程的步骤之前,需要完成以下步骤。

如果之前没有启用Ubuntu上的SSH服务,请启用它。生成SSH密钥对以在远程服务器中执行命令。运行以下命令创建公钥和私钥。私钥将存储在远程服务器中,公钥将安全地存储在客户端中。

$ ssh-keygen -t rsa

运行以下命令,使用nano编辑器打开sshd_config文件,添加一些必要的配置。

$ sudo nano /etc/ssh/sshd_config

在文件中添加以下行以启用 root 登录和基于密码的身份验证。

PasswordAuthentication yes

PermitRootLogin yes

执行以下命令,重启SSH服务。

$ sudo service ssh restart

句法 :

ssh-copy-id 命令的语法如下。它支持多种选项,稍后将对此进行解释。

ssh-copy-id [-lv] [-i keyfile] [-o option][-p port] [user@]hostname

ssh-copy-id 命令的不同选项:

本教程的这一部分描述了使用 ssh-copy-id 命令的不同选项的目的。

-i keyfile

它用于复制存储在文件中的公钥。它可以多次使用。

-l

它用于复制 ssh-agent 当前持有的密钥。如果未指定 -i 选项,它将用作默认值。

-o ssh-option

它用于将选项直接传递给 ssh。它可以多次使用。

-p port

它用于连接远程主机上的指定端口,而不是默认端口 22。

-v

它用于将 -v 的值传递给 ssh。

将密钥复制到服务器:

您必须在服务器计算机中授权公钥才能建立 SSH 连接,而无需使用任何密码。创建公钥后,ssh-copy-id 命令可以将该密钥添加为服务器计算机上的授权密钥。

从服务器计算机运行以下命令,将任何新创建的公钥添加为服务器的授权密钥。

$ ssh-copy-id fahmida@fahmida-VirtualBox

如果远程服务器中已存在公钥,则会出现以下输出;否则,将添加密钥。

之前提到过 -i 选项与 ssh-copy-id 命令一起使用来添加文件中的公钥。如果您将新创建的公钥存储在默认文件中,则文件名将为id_rsa.pub。但是您在创建密钥对时设置了任何文件名,然后使用该文件名和 -i 选项。我已将公钥存储在默认文件中。

从服务器计算机运行以下命令将公钥添加到服务器计算机。该命令会将密钥复制到服务器并将其配置为将密钥添加到 authorized_keys 文件中以访问服务器。

$ ssh-copy-id -i ~/.ssh/id_rsa fahmida@fahmida-VirtualBox

如果之前没有将公钥添加到服务器计算机中,则会出现以下输出。

检查连接:

将密钥添加到服务器后,您必须检查客户端计算机是否可以与服务器连接。服务器计算机的用户名是“fahmida”,客户端计算机的用户名是“yesmin”。因此,首先登录客户端机器来测试连接。

运行以下命令将服务器的身份添加到客户端计算机。

$ ssh-add

运行以下不带任何选项的 ssh 命令来建立与服务器计算机的连接。如果服务器计算机中启用了基于密码的身份验证,则用户必须提供有效密码才能与服务器建立连接。

$ ssh fahmida@fahmida-VirtualBox

以下输出显示服务器的身份已添加到客户端计算机。接下来,服务器用户的密码已要求连接,因为此处的服务器计算机已启用基于密码的身份验证。用户名从命令提示符中的“yesmin”更改为“fahmida”,表示输入有效密码后连接已正确建立。

如果您想提及公钥的文件名以及与服务器建立连接的位置,请使用 -i 选项运行以下 ssh 命令。如果您将公钥存储在用户定义的文件名中,则需要这样做。我在生成密钥时使用了默认文件名 id_rsa.txt。

$ ssh -i ~/.ssh/id_rsa fahmida@fahmida-VirtualBox

它会像以前一样要求输入密码来建立与服务器的连接。输出显示连接已正确建立,并且命令提示符的用户名已更改。如果您不想在每次连接服务器时提供密码,可以更改服务器的配置文件以禁用基于密码的身份验证。

结论:

本教程通过使用本地主机的两个用户帐户来描述如何使用 ssh-copy-id 命令连接远程主机,以帮助读者正确了解该命令的功能。

©2015-2025 艾丽卡 support@alaica.com