zoukankan      html  css  js  c++  java
  • ubuntu系统使用SSH免密码登陆

    ubuntu系统使用SSH免密码登陆

    • |
    • 浏览:5160
    • |
    • 更新:2014-02-13 19:15
    • ubuntu系统使用SSH免密码登陆1
    • ubuntu系统使用SSH免密码登陆2
    • ubuntu系统使用SSH免密码登陆3
    • ubuntu系统使用SSH免密码登陆4
    • ubuntu系统使用SSH免密码登陆5
    • ubuntu系统使用SSH免密码登陆6
    • ubuntu系统使用SSH免密码登陆7
    分步阅读
    百度经验:jingyan.baidu.com

    我们通常使用Ubuntu系统远程登陆时,一般使用 PASSWORD【用户名+密码】 的方式进行验证登陆,但是这种方式在使用的过程中需要频繁的输入用户名和密码,显得很繁琐,我们可以更具安全性的RSA密钥认证来避免这种登陆方式。

    应用场景:

    我们需要从Client机器上远程登陆Server机器。登陆方式采用RSA密钥免密码登陆方式。其中Client端与Server端都为Ubuntu系统。

    Client与Server端用户名都选用phenix(可以不相同)

    百度经验:jingyan.baidu.com

    工具/原料

    • Server端需要安装并开启SSH服务

    • Client端需要支持ssh-keygen命令

    • 确认两台机器能够连接到Internet

    百度经验:jingyan.baidu.com

    步骤/方法:

    1. 1

      安装ssh服务

      在Ubuntu服务器上安装ssh

      安装方法:

      apt-get install ssh

      安装完成后验证是否SSH安装成功

      验证方法:

      在命令行模式下执行命令:ssh -V

      结果显示ssh版本证明成功

    2. 2

      查看Server端phenix用户家目录下是否存在隐藏目录".ssh"

      在安装ssh完成后,进入phenix用户家目录,使用命令:ls -al 查看目录结构中是否存在隐藏目录“.ssh”

      若存在,则操作正确,若不存在,解决方法如下:

      1,按照步骤一,重新安装一遍ssh服务

      2,若安装成功后还不存在".ssh"目录,则使用mkdir .ssh 在家目录下新建一个.ssh目录

      一般来说,多数系统在安装完ssh服务后,默认都会自动建立“ssh”隐藏目录,只有少数需要手动创建。

    3. 3

      Client端生成公钥和密钥

      我们使用RSA密钥认证的目的是:从Client端登陆Server端时,不需要密码认证。

      所以,我们在进行认证时首先需要在Client端建立属于Client端自己的一对密钥(公钥和私钥),建立方法如下:

      在命令行下执行:ssh-keygen

      执行过程中,它先要求你确认保存公钥的位置(默认为:.ssh/id_rsa),

      然后它会让你重复输入一个密码两次,如果不想在使用公钥的时候输入密码,可以留空

      执行完毕后,就会生成数据Client端的一对密钥。

      执行过程如下图:

      SSH 密钥默认储存在账户的家目录下的 ~/.ssh 目录中

      关键是看有没有用 xxx_rsa 和 xxx_rsa.pub 来命名的一对文件,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

      生成的一对公私钥,顾名思义:

      公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

      生成的密钥截图如下:

    4. 4

      将Client端的公钥添加到用于认证的Server端的公钥文件中

      首先检查Server端需要认证的phenix用户的家目录下,隐藏目录“ssh”目录下是否存在一个名为“authorized_keys”的文件,

      若不存在,使用命令:touch authorized_keys 创建一个空文件

      创建完成后,则可以执行如下步骤:

      执行步骤如下:

      1,将Clinet端公钥的内容复制

      2,将复制到的Client端公钥内容,粘贴至Server端刚才创建的 authorized_keys 文件中,保存文件。

      3,更改 authorized_keys 文件的权限

      执行命令:chmod 600 authorized_keys

      Client公钥内容格式大概如下:

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzKGjCrHNCPCT96TTl8j1UtJ10V9a3fLIdx6R0upKP2N7FJP82Nni/vmAx7UVDhUNCgyfyG5Y6wK8AK2hOGjKLfLdfyYPojwmx3MF8KTspZBmmYKbHWh6Aem4TskRmsHOSpWeqns7o3tle0Ln1GMmPpdFph/owa7vj5/JYSOCBX8c+gGFyJeAMHGTs1fnHhGZRl5mzu8mWIv+qJnDxRmE/jBtuNXzSrPeZ2Cz86U+DfWtXVRyEl9XoIotX+GZ/zPxvPoMoItWD3UL6aA8McCX/PE7BLFA4B1Nl+mefTVpHH39AqcyqkcAJxntoqeNU3IwaM7sx/J7ONrFxp9Z3fjVR phenix@Client

      实例公私钥截图如下:

    5. 5

      验证无密码登陆

      在Client端命令行执行如下命令:

      ssh -p12 phenix@10.2.31.33 (本例ssh服务开在了12端口,默认为22)

      直接登陆至Server端,表示验证成功。

      登陆截图如下:

      END
    百度经验:jingyan.baidu.com

    注意事项

    • ssh-keygen执行完毕后一定要检查下phenix用户家目录下.ssh目录中是否有一对密钥

    • 在将公钥粘贴至Server端后,一定要修改authorized_keys文件的权限为600,否则认证会失败

    • Server端需要开启SSH服务,不然客户端使用ssh连接不上

    软件基本信息

    名称:Ubuntu
    大小:16.25M|版本:1.0.5.0|系统:Android
  • 相关阅读:
    ESP32学习目录
    python中mysql管理模块mysql-connector使用
    MYSQL基础知识和操作
    urlib补充
    Python3中Urllib库是什么?urllib模块基本使用
    递归:斐波契那数列
    python正则模块一
    模块&包
    XML模块示例代码
    使用python操作XML增删改查
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/4510247.html
Copyright © 2011-2022 走看看