Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix ssh副本id未找到标识错误_Unix_Ssh_Ssh Keys - Fatal编程技术网

Unix ssh副本id未找到标识错误

Unix ssh副本id未找到标识错误,unix,ssh,ssh-keys,Unix,Ssh,Ssh Keys,我很少有客户机系统需要在没有身份验证提示的情况下推送ssh密钥并从服务器登录 首先,在服务器上,我创建了ssh密钥,如下所示,这是成功的 ]# ssh-keygen -t rsa -N "" -f my.key 第二,尝试复制发布密钥,但失败,没有标识错误。我走错一步了吗 ]# ssh-copy-id my.key.pub 10.10.1.1 /usr/bin/ssh-copy-id: ERROR: No identities found 您需要使用-i标志: ssh-copy-id -i

我很少有客户机系统需要在没有身份验证提示的情况下推送ssh密钥并从服务器登录

首先,在服务器上,我创建了ssh密钥,如下所示,这是成功的

]# ssh-keygen -t rsa -N "" -f my.key
第二,尝试复制发布密钥,但失败,没有标识错误。我走错一步了吗

]# ssh-copy-id my.key.pub 10.10.1.1
/usr/bin/ssh-copy-id: ERROR: No identities found

您需要使用
-i
标志:

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

如果给出了-i选项,那么将使用标识文件(默认为~/.ssh/id_rsa.pub),而不管ssh代理中是否有密钥。否则,如果this:ssh add-L提供任何输出,它将优先使用该输出,而不是标识文件

运行以下命令

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

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

# eval `ssh-agent`

在我的例子中,它是一个键缺少的
.pub
扩展名。我从剪贴板粘贴了它,并保存为
mykey
。以下命令返回了描述的错误:

ssh-copy-id -i mykey localhost
使用
mv mykey mykey.pub
重命名后,它可以正常工作

ssh-copy-id -i mykey.pub localhost

但我今天遇到了这个问题,最后在谷歌上搜索,发现自己在这里。我自己已经解决了这个问题,但我想我会在我的案例中分享我的问题和解决方案,以帮助其他可能有同样问题的人

问题:

[root@centos [username]]# ssh-keygen -t rsa
输入保存密钥的文件(/root/.ssh/id\u rsa):
我刚刚按了Enter键

/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只是指向您默认登录的目录


希望这对任何人都有帮助。

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

  • 查找.pub文件的路径:
    locate*.pub
  • 复制路径(例如:/home/user\u name/.ssh/id\u rsa.pub)并运行以下命令:
    ssh copy id-i/home/user\u name/.ssh/id\u rsa.pub主机名

  • 您需要使用-i选项指定密钥

    ssh-copy-id -i your_public_key user@host
    

    谢谢。

    在客户端生成ssh密钥为我解决了这个问题

    $ ssh-keygen -t rsa
    

    最简单的方法是:

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

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

    由于我从数据节点而不是名称节点运行下面的命令,所以遇到了这个问题 ssh copy id-i/home/hduser/.ssh/id_ras.pubhduser@HadoopBox2


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

    在一个现有的帐户上发现了此文件,该帐户使用我从其他地方手动复制的私钥。因此,错误是因为缺少public

    因此,只需从private生成一个

     ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
    

    实际上Ubuntu机器中的一个问题是ssh keygen命令没有正确运行。我再次尝试运行并导航到/home/user1/.ssh,能够看到id\u rsa和id\u 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.......==
    

    FWIW,-i选项对我来说是一个危险的选择。默认情况下,ssh副本id将使用~/.ssh/id_rsa.pub

    使它无法为我工作的是远程计算机上的~directory、~/.ssh目录和~/.ssh/authorized_keys文件的权限


    所有三个都需要设置
    chmod 755~~/.ssh~/.ssh/authorized_key
    ,然后
    ssh copy id您的远程服务器.com
    将正常工作。

    。问题是我的
    ~/.ssh/id\u rsa.pub
    文件为空。我在修改ssh配置时不知怎么地覆盖了它。更正文件后,问题得到解决。

    您是否确认
    my.key
    ls-l my.key
    一起存在?是否有一个步骤您没有向我们展示,它制作了一张
    cd
    ?可能不会,但只是作为你的“第二双眼睛”提问而已。祝你好运。我尝试了-I选项,并成功地将键按到了目标。还验证了授权密钥文件,并且密钥似乎存在。。然后在我试过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以确保我们没有添加您不期望的额外密钥。~]#sshroot@10.10.1.1 root@10.10.1.1的密码:SSH默认地键入代码“>代码> ~/.ssh 您的密钥等。因为您的代码>我的.KEY/<代码>文件似乎在另一个目录中,请尝试<代码> SSH-I/Loist/OM/My.KEY 10. 1.1.1 (或者考虑将My.KEY文件移到<代码> ~/.ssh )。执行eval
    ssh-agent
    后,执行ssh-add,然后执行ssh-copy-id,所有操作都应正常工作。谢谢!我一直在试图找出什么不起作用,但这解决了它原始错误
    /usr/bin/ssh copy id:error:No identifies found
    即使在运行上述命令后仍然存在idn对我没有帮助,我想说这是一个适用于通常情况的错误(在默认位置生成ssh密钥)只需
    ssh-keygen
    worke