我的客户端系统很少,我需要按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
Answers:
您需要使用-i
标志:
ssh-copy-id -i my.key.pub 10.10.1.1
从手册页:
如果指定了-i选项,则将使用身份文件(默认为〜/ .ssh / id_rsa.pub),而不管ssh-agent中是否有任何密钥。否则,如果满足以下条件:ssh-add -L提供任何输出,则优先使用该输出而不是标识文件
~/.ssh
您的密钥等。由于您的my.key
文件似乎位于另一个目录中,请尝试ssh -i /location/of/my.key 10.10.1.1
(或考虑将my.key文件移动到~/.ssh
)
在客户端上生成ssh密钥为我解决了它
$ ssh-keygen -t rsa
ssh-keygen
为我工作。无需指定-t rsa
。
运行以下命令
# ssh-add
如果出现以下错误:无法打开与身份验证代理的连接
要消除此错误,请运行以下命令:
# eval `ssh-agent`
ssh-agent
ssh-add,然后执行ssh-copy-id,一切都应正常工作。
/usr/bin/ssh-copy-id: ERROR: No identities found
即使在运行上述命令后,原始错误仍然存在
最简单的方法是:
ssh-keygen
[enter]
[enter]
[enter]
cd ~/.ssh
ssh-copy-id -i id_rsa.pub USERNAME@SERVERTARGET
提示:
它非常非常简单。
在“ ss-keygen”手册中说明:
“说明ssh-keygen会生成,管理和转换ssh(1)的身份验证密钥。ssh-keygen可以创建供SSH协议版本1和DSA,ECDSA或RSA密钥供SSH协议版本2使用的RSA密钥。用-t选项指定要生成的密钥。 如果不带任何参数调用ssh-keygen,它将生成一个RSA密钥,用于SSH协议2连接。 ”
您需要使用-i选项指定密钥。
ssh-copy-id -i your_public_key user@host
谢谢。
旧帖子,但今天我想到了这个问题,结束了谷歌搜索,发现自己在这里。我自己解决了这个问题,但以为我会分享我的问题和解决方案,以帮助其他可能遇到相同问题的人。
问题:
[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身份执行此操作,则将密钥复制到要登录的用户目录中。不是root用户目录。
在执行此操作时,我正在向计算机中发送消息,因此我猜ssh-copy-id仅指向默认情况下登录的目录。
希望这对任何人都有帮助。
实际上,Ubuntu机器之一中的问题是ssh-keygen命令未正确运行。我尝试再次运行并导航到/home/user1/.ssh并能够看到id_rsa和id_rsa.pub密钥。然后尝试命令ssh-copy-id,它工作正常。
使用simple
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.......==
我今天在CentOS的两个VM之间以完全分布式的方式在名称节点和数据节点之间设置ssh时遇到了这个问题。
遇到问题是因为我从数据节点而不是名称节点运行以下命令ssh-copy-id -i /home/hduser/.ssh/id_ras.pub hduser @ HadoopBox2
由于公钥文件在数据节点中不存在,因此引发了错误。
my.key
存在ls -l my.key
吗?您是否有步骤不向我们展示已完成操作cd
?可能不是,只是问问您是“第二只眼睛” ;-)。祝好运。