SSH无密码登陆linux服务器

来源:互联网 发布:用户软件使用报告 编辑:程序博客网 时间:2024/04/27 14:30

背景交代

  • 虚拟主机系统:Ubuntu 14.04
  • 本地/客户端系统:Ubuntu 14.04
  • SSH无密码登陆服务器比较常见的做法是,在终端生成一对密钥(公钥&私钥),然后将公钥上传服务器,私钥由客户端存留。当我们在本地登陆远程服务器时,由于存有公钥的服务器与存有私钥的客户端之间已产生互信,因此无需输入登陆密码,直接登入服务器。



    下文是具体实现步骤

    1. 生成密钥对

    在终端输入如下命令:

    ~$ ssh-keygen -t rsa

    这时会出现如下图提示。按回车键即可:
    这里写图片描述

    然后你会看到如下图提示。因为我们是希望“无码”登陆,因此两行提示皆按回车键:
    这里写图片描述

    最终在你本机生成密钥成功后,终端会显示类似如下图信息:
    这里写图片描述

    在Ubuntu 14.04系统,密钥对生成文件名为 .ssh ,存放在你的用户目录下。在终端输入如下命令:

    ~$ cd ~/.ssh~/.ssh$  ll  

    即可查看密钥对文件内容,如图示:
    这里写图片描述
    (其中 id_rsa.pub 为公钥文件, id_rsa 为私钥文件。)



    2.上传公钥文件至服务器

    继续在终端输入如下命令(请注意!在实际操作中,无需输入尖括号。这里添加只是为了更好叙述):

    ssh-copy-id   <你的服务器端用户名>@<你的服务器端 ip 地址>

    此时你会看到类似信息如下图:
    这里写图片描述

    按照这篇文章的介绍,此时我们已经成功了,以后你再登陆服务器,不会有密码输入提示,可直接登入。

    但是

    在我电脑的实际操作中,设置好SSH后,重新登陆服务器时出现 “Agent admitted failure to sign using the key” 的错误提示,如图示:
    这里写图片描述

    根据这里的答案,我解决了上述问题并最终成功登陆服务器。操作如下:
    这里写图片描述

    即,在终端输入命令

    ~$   ssh-add

    即可。

    0 0
    原创粉丝点击