ssh-copy-id 找不到身份错误
Posted
技术标签:
【中文标题】ssh-copy-id 找不到身份错误【英文标题】:ssh-copy-id no identities found error 【发布时间】:2014-04-27 04:12:06 【问题描述】:我的客户端系统很少,我需要在没有身份验证提示的情况下推送 ssh 密钥并从我的服务器登录。
首先,在服务器上,我创建了如下成功的 ssh 密钥
]# ssh-keygen -t rsa -N "" -f my.key
其次,尝试复制 pub 密钥但失败且没有身份错误。我在这里做错了吗?
]# ssh-copy-id my.key.pub 10.10.1.1
/usr/bin/ssh-copy-id: ERROR: No identities found
【问题讨论】:
您确认my.key
与ls -l my.key
存在吗?有没有你没有向我们展示的步骤是cd
?可能不是,但只是问你的“第二双眼睛”;-)。祝你好运。
【参考方案1】:
您需要使用-i
标志:
ssh-copy-id -i my.key.pub 10.10.1.1
来自man page:
如果给出了 -i 选项,则无论您的 ssh-agent 中是否有任何密钥,都会使用身份文件(默认为 ~/.ssh/id_rsa.pub)。否则,如果:ssh-add -L 提供任何输出,它会优先使用该输出而不是身份文件
【讨论】:
我尝试使用 -i 选项并成功将密钥推送到目标。还验证了authorized_keys文件并且密钥似乎在那里..然后在我尝试ssh root@10.10.1.1但仍然提示输入密码..这里还有什么需要的吗? ? ssh-copy-id -i my.key.pub 10.10.1.1 现在尝试使用“ssh '10.10.1.1'”登录机器,并检查:.ssh/authorized_keys 以确保我们没有添加额外的密钥你没想到的。 ~]# ssh root@10.10.1.1 root@10.10.1.1的密码: ssh 默认在~/.ssh
中查找您的密钥等。由于您的my.key
文件似乎在另一个目录中,请尝试ssh -i /location/of/my.key 10.10.1.1
(或考虑将您的my.key 文件移动到@987654327 @)【参考方案2】:
运行以下命令
# ssh-add
如果它给出以下错误: 无法打开与您的身份验证代理的连接
要消除此错误,请运行以下命令:
# eval `ssh-agent`
【讨论】:
执行 evalssh-agent
后执行 ssh-add 然后 ssh-copy-id 一切都应该正常工作。
谢谢!我一直试图找出什么不起作用,但这解决了它
原来的错误/usr/bin/ssh-copy-id: ERROR: No identities found
即使在运行上述命令后仍然存在
对我也没有帮助【参考方案3】:
在我的情况下,它是缺少 .pub
的密钥扩展。我从剪贴板粘贴它并保存为mykey
。以下命令返回描述的错误:
ssh-copy-id -i mykey localhost
用mv mykey mykey.pub
重命名后,可以正常工作。
ssh-copy-id -i mykey.pub localhost
【讨论】:
【参考方案4】:旧帖子,但我今天想出了这个问题,最终在谷歌上搜索并发现自己在这里。我自己想通了,但我想我会分享我的问题和解决方案,以帮助可能遇到相同问题的其他人。
问题:
[root@centos [username]]# ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):
我刚按回车
/usr/bin/ssh-copy-id: ERROR: No identities found
解决方案:
Enter file in which to save the key (/root/.ssh/id_rsa): **/home/[username]/id_rsa**
请确保如果您以 root 身份执行此操作,您正在将密钥复制到您希望登录的用户目录中。不是根用户目录。
我在执行这个操作的时候是ssh到机器上,所以我猜ssh-copy-id只是指向你默认登录的目录。
希望这对任何人都有帮助。
【讨论】:
【参考方案5】:ssh-copy-id在你的系统中找不到ssh-keygen生成的id_rsa.pub文件,使用以下命令完成:
-
找到 .pub 文件的路径:
locate *.pub
复制路径(例如:/home/user_name/.ssh/id_rsa.pub)并运行以下命令:
ssh-copy-id -i /home/user_name/.ssh/id_rsa.pub hostname
【讨论】:
【参考方案6】:您需要使用 -i 选项指定密钥。
ssh-copy-id -i your_public_key user@host
谢谢。
【讨论】:
【参考方案7】:在客户端生成 ssh 密钥为我解决了这个问题
$ ssh-keygen -t rsa
【讨论】:
我想说这是一种适用于通常情况的方法(在默认位置创建一个 SSH 密钥) 只是ssh-keygen
为我工作。无需指定-t rsa
。【参考方案8】:
最简单的方法是:
ssh-keygen
[enter]
[enter]
[enter]
cd ~/.ssh
ssh-copy-id -i id_rsa.pub USERNAME@SERVERTARGET
收件人:
非常非常简单。
在“ss-keygen”手册中解释:
“描述 ssh-keygen 为 ssh(1) 生成、管理和转换身份验证密钥。 ssh-keygen 可以创建 RSA 密钥供 SSH 协议版本 1 和 供 SSH 协议版本 2 使用的 DSA、ECDSA 或 RSA 密钥。要生成的密钥类型使用 -t 选项指定。 如果没有调用 任何参数,ssh-keygen 都会生成一个用于 SSH 协议 2 连接的 RSA 密钥。"
【讨论】:
谢谢。这行得通。我不必生成密钥,因为我已经有了一个。它正在更改为 .ssh 目录并使用执行此操作的命令。【参考方案9】:我今天在 CentOS 中的两个虚拟机之间以完全分布式模式在名称节点和数据节点之间设置 ssh 时遇到了这个问题。
遇到问题是因为我从数据节点而不是名称节点运行以下命令 ssh-copy-id -i /home/hduser/.ssh/id_ras.pub hduser@HadoopBox2
由于数据节点中不存在公钥文件,因此引发错误。
【讨论】:
我的问题是我从root
运行命令(通过sudo,因为我希望root
无需密码即可登录到远程服务器)。 Ubuntu 显然正在寻找用户家中缺少.ssh
目录的密钥。似乎ssh-copy-id
暂时使用该.ssh
目录来上传密钥。感谢-i /home/.../id_rsa.pub
参数,我能够注意到这一点。创建该目录后,我能够成功上传密钥并从root
登录。【参考方案10】:
在一个现有帐户上遇到了这个问题,该帐户带有我从其他地方手动复制的私钥。所以错误是因为 public 密钥丢失
所以只需从私有生成一个
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
【讨论】:
【参考方案11】:实际上其中一台 Ubuntu 机器的问题是 ssh-keygen 命令没有正常运行。我尝试再次运行并导航到 /home/user1/.ssh 并能够看到 id_rsa 和 id_rsa.pub 键。然后尝试了命令 ssh-copy-id ,它工作正常。
【讨论】:
【参考方案12】:使用简单
ssh-keyscan hostname
查找两个站点上是否存在密钥:
ssh-keyscan rc1.localdomain
[or@rc2 ~]$ ssh-keyscan rc1
# rc1 SSH-2.0-OpenSSH_5.3
rc1 ssh-rsa AAAAB3NzaC1yc2EAAAABI.......==
ssh-keyscan rc2.localdomain
[or@rc2 ~]$ ssh-keyscan rc2
# rac2 SSH-2.0-OpenSSH_5.3
rac2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAys7kG6pNiC.......==
【讨论】:
【参考方案13】:FWIW,-i 选项对我来说是一个红鲱鱼。 ssh-copy-id 默认使用 ~/.ssh/id_rsa.pub。
阻止它为我工作的是对 ~ 目录、~/.ssh 目录和远程计算机上的 ~/.ssh/authorized_keys 文件的权限。
这三个都需要设置chmod 755 ~ ~/.ssh ~/.ssh/authorized_keys
,然后ssh-copy-id your-remote-server.com
才可以工作。
【讨论】:
根据documentation,权限应相应为700
和600
。【参考方案14】:
我有同样的问题。问题是我的~/.ssh/id_rsa.pub
文件是空。我在弄乱我的 ssh 配置时以某种方式覆盖了它。修改文件后问题解决。
【讨论】:
以上是关于ssh-copy-id 找不到身份错误的主要内容,如果未能解决你的问题,请参考以下文章