ssh-copy-id没有发现身份错误

问题描述 投票:53回答:11

我有几个客户端系统,我需要推送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
unix ssh ssh-keys
11个回答
53
投票

你需要使用-i标志:

ssh-copy-id -i my.key.pub 10.10.1.1

来自man page

如果给出-i选项,则使用身份文件(默认为〜/ .ssh / id_rsa.pub),无论ssh-agent中是否有任何键。否则,如果这样:ssh-add -L提供任何输出,它会优先使用它来识别身份文件


-1
投票

今天我在CentOS中两个虚拟机之间以完全分布式模式在名称节点和数据节点之间设置ssh时遇到了这个问题。

遇到问题是因为我从数据节点而不是名称节点运行以下命令ssh-copy-id -i /home/hduser/.ssh/id_ras.pub hduser @ HadoopBox2

由于数据节点中不存在公钥文件,因此它抛出了错误。


-2
投票

在我的情况下,它是一个密钥缺少.pub扩展。我从剪贴板粘贴它并保存为mykey。以下命令返回描述错误:

ssh-copy-id -i mykey localhost

mv mykey mykey.pub重命名后,工作正常。

ssh-copy-id -i mykey.pub localhost

27
投票

运行以下命令

# ssh-add

如果它出现以下错误:无法打开与身份验证代理的连接

要删除此错误,请运行以下命令:

# eval `ssh-agent`

18
投票

在客户端生成ssh密钥为我解决了它

$ ssh-keygen -t rsa

8
投票

ssh-copy-id无法找到系统中ssh-keygen生成的id_rsa.pub文件,请使用以下命令完成:

  1. 找到.pub文件的路径:locate *.pub
  2. 复制路径(例如:/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

谢谢。


4
投票

最简单的方法是:

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和DSA,ECDSA或RSA密钥使用,供SSH协议版本2使用。要生成的密钥是使用-t选项指定的。如果没有任何参数调用,ssh-keygen将生成一个RSA密钥,用于SSH协议2连接。“


4
投票

老帖子,但我今天想出了这个问题,结束了谷歌搜索,并发现自己在这里。我自己想出来了,但我想我会在我的案例中分享我的问题和解决方案,以帮助其他可能遇到同样问题的人。

问题:

[root@centos [username]]# ssh-keygen -t rsa

Enter file in which to save the key (/root/.ssh/id_rsa):I我刚刚进入

/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身份执行此操作,并将密钥复制到要登录的用户目录中。不是root用户目录。

我在执行此操作时正在进入机器,所以我猜ssh-copy-id只是指向默认情况下您登录的目录。

希望这有助于任何人。


1
投票

实际上Ubuntu机器之一的问题是ssh-keygen命令运行不正常。我尝试再次运行并导航到/home/user1/.ssh并能够看到id_rsa和id_rsa.pub键。然后尝试命令ssh-copy-id,它工作正常。


0
投票

我发现这个问题出现在一个现有的私钥上,我从其他地方手动复制。所以错误是因为缺少公钥

所以只需从私人生成一个

 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
热门问题
推荐问题
最新问题