迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

3 步使用 ssh-keygen 和 ssh-copy-id 执行无密码 SSH 登录

作者:迹忆客 最近更新:2022/10/22 浏览次数:

如本文所述,我们可以使用 ssky-keygenssh-copy-id 通过 3 个简单的步骤登录到远程 Linux 服务器而无需输入密码。

ssh-keygen 创建公钥和私钥。 ssh-copy-id 将本地主机的公钥复制到远程主机的 authorized_keys 文件中。 ssh-copy-id 还为远程主机的 home、**/.ssh** 和 **/.ssh/authorized_keys** 分配了适当的权限。

本文还解释了使用 ssh-copy-id 的 3 个小烦恼以及如何将 ssh-copy-idssh-agent 一起使用。

第 1 步:在本地主机上使用 ssh-key-gen 创建公钥和私钥

迹忆客@jiyik.com-local$ [Note: You are on jiyik.com-local here]

迹忆客@jiyik.com-local$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jiyik/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in /home/jiyik/.ssh/id_rsa.
Your public key has been saved in /home/jiyik/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 迹忆客@jiyik.com-local

第 2 步:使用 ssh-copy-id 将公钥复制到远程主机

迹忆客@jiyik.com-local$ ssh-copy-id -i ~/.ssh/id_rsa.pub jiyik.com-remote
迹忆客@jiyik.com-local's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

注意 :ssh-copy-id 将密钥附加到远程主机的 .ssh/authorized_key

第 3 步:不输入密码登录远程主机

迹忆客@jiyik.com-local$ ssh jiyik.com-remote
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[Note: SSH did not ask for password.]

迹忆客@jiyik.com-remote$ [Note: You are on remote-host here]

在大多数情况下,以上 3 个简单的步骤应该可以完成工作。

我们之前还详细讨论了在不输入密码的情况下从 openSSH 到 openSSH 执行 SSH 和 SCP。

如果大家使用的是 SSH2,我们之前讨论过从 SSH2 到 SSH2从 OpenSSH 到 SSH2 以及从 SSH2 到 OpenSSH 执行 SSH 和 SCP 无需密码。

将 ssh-copy-id 与 ssh-add/ssh-agent 一起使用

如果没有为选项 -i 传递任何值并且如果 ~/.ssh/identity.pub 不可用,则 ssh-copy-id 将显示以下错误消息。

迹忆客@jiyik.com-local$ ssh-copy-id -i jiyik.com-remote
/usr/bin/ssh-copy-id: ERROR: No identities found

如果大家已使用 ssh-add 将密钥加载到 ssh-agent,则 ssh-copy-id 将从 ssh-agent 获取密钥以复制到远程主机。 即,当不将选项 -i 传递给 ssh-copy-id 时,它会将 ssh-add -L 命令提供的密钥复制到远程主机。

迹忆客@jiyik.com-local$ ssh-agent $SHELL

迹忆客@jiyik.com-local$ ssh-add -L
The agent has no identities.

迹忆客@jiyik.com-local$ ssh-add
Identity added: /home/jiyik/.ssh/id_rsa (/home/jiyik/.ssh/id_rsa)

迹忆客@jiyik.com-local$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jiyik/.ssh/id_rsa

迹忆客@jiyik.com-local$ ssh-copy-id -i jiyik.com-remote
迹忆客@jiyik.com-remote's password:
Now try logging into the machine, with "ssh 'jiyik.com-remote'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
[Note: This has added the key displayed by ssh-add -L]

ssh-copy-id 的三个小烦恼

以下是 ssh-copy-id 的一些小问题。

  • 默认公钥ssh-copy-id 使用 ~/.ssh/identity.pub 作为默认公钥文件(即当没有值传递给选项 -i 时)。相反,我希望它使用 id_dsa.pubid_rsa.pubidentity.pub 作为默认键。即如果其中任何一个存在,它应该将其复制到远程主机。如果存在两个或三个,则应默认复制 identity.pub
  • 代理没有身份:当 ssh-agent 正在运行并且 ssh-add -L 返回“The agent has no identities”(即没有向 ssh-agent 添加密钥)时,ssh-copy-id 仍将复制将消息“The agent has no identities”发送到远程主机的 authorized_keys 条目。
  • 授权密钥中的重复条目:我希望 ssh-copy-id 验证远程主机的授权密钥上的重复条目。如果在本地主机上多次执行 ssh-copy-id,它将继续在远程主机的 authorized_keys 文件上附加相同的密钥,而不检查重复项。即使有重复的条目,一切都按预期工作。但是,我想让我的 authorized_keys 文件杂乱无章。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Git 中使用 SSH 密钥克隆仓库或分支

发布时间:2023/04/04 浏览次数:83 分类:Git

你可以在本教程中使用 SSH 密钥进行 Git 克隆 - 在 Git 中设置 SSH,在 GitHub 中更新 SSH 公钥,并使用选项 - 仅克隆特定分支、选择的位置或仅克隆最近的提交。

Git 远程添加 SSH

发布时间:2023/03/31 浏览次数:160 分类:Git

本篇文章介绍了在 Git 中通过不同的 SSH 端口远程添加 SSH 的过程。

Git push 使用 SSH 密钥

发布时间:2023/03/30 浏览次数:131 分类:Git

SSH 代表 Secure Shell。 它是为我们提供 SSH 网络协议访问证书的密钥。它提供对无保证开放网络上引擎之间的远程服务器的访问。 它用于传输数据、文件和网络管理,并提供从源头访问远程服务器

如何在 Linux 上设置反向 SSH 隧道

发布时间:2022/10/22 浏览次数:233 分类:操作系统

反向 SSH 是一种可用于从外部访问系统(位于防火墙后面)的技术。如大家所知,SSH 是一种支持网络节点之间加密通信的网络协议。 使用此协议,我们可以进行安全的远程登录、从/到远

从 openSSH 到 SSH2 的基于 SSH 密钥的身份验证设置

发布时间:2022/10/22 浏览次数:110 分类:操作系统

之前的文章(openSSH 到 openSSH 设置,SSH2 到 SSH2 设置)解释了如何在相同版本的 ssh 上设置基于密钥的身份验证,以在不输入密码的情况下执行 ssh 和 scp。 本文介绍如何在不同版本的 SS

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便