• 免密码的SSH配置过程


     建立口令文件

      要想完成A与B之间的无密码SSH访问,需要将请求认证方的SSH口令文件的公钥发送到认证方并且追加到认证文件authorized_keys中。谁要访问别人就把公钥发送给对方。
      在这里,如果当前用户已经有公钥文件,说明当前用户有可能已经与其他主机建立免密码访问,可以不用生成口令文件,但也可以生成具有与已存在的口令文件不同名称的另一个口令文件。
      使用以下命令确认用户口令文件是否存在
        ls ~/.ssh/*.pub
      如果没有则使用下面的新建使用DSA加密方式的口令文件。文件存在的话请跳到第三步。
        ssh-keygen -t dsa
      然后一路回车,使用默认值就可以了。然后使用上面的ls命令就能看见生成的密码文件:私钥id_dsa 公钥id_dsa.pub两个文件。
      不知道怎么回事我的机器如果用rsa免密码会没效果

     完成验证过程

      在~/.ssh目录下使用下面的命令新建一个 authorized_keys 文件。
        touch ~/.ssh/authorized_keys
      然后使用下面的命令将本机加入到本机的免认证文件中,这样,在本机使用ssh登陆到本机时就不用输入密码了。当然,这步不是必须的。
        cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
      使用下面的命令将文件传送到目标主机。亦可以使用rsync命令等都可以。
        scp ~/.ssh/id_dsa.pub 远程用户名@远程IP:/home/远程用户名/
        
      登陆到对方主机,这里需要输入一次密码,然后执行下面的命令。
        ssh 远程IP   <输入密码>
        cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
        rm ~/id_dsa.pub   删除传过来的公钥文件。
      当然,以上操作中若对方主机没有.ssh文件夹,则也需要使用ssh-keygen命令生成,并创建authorized_keys 文件。

     更改文件权限

      光把公钥文件添加到authorized_keys是不够的,因为ssh进程因为权限不够或者太大,免密码文件不会生效,因此需要使用下面两个命令将authorized_keys文件和.ssh文件夹设置成合适的权限。
      
        chmod 600 ~/.ssh/authorized_keys
        chmod 700 ~/.ssh
      
      这两个命令应该在所有的机器上执行。
      

    额外事项

    配置过程中学习到了vi等的非交互使用方法。例如

    i
    this is a line
    CTRL+V <ESC>
    w
    END
    

    复习一下数据加密:
    A与B通信,A产生了公钥和私钥以后,把公钥公开(使用scp发给B),以后B向A发送数据就可以使用公钥加密了。
    而签名是相反的过程,A产生了公钥和私钥后,私钥作为A身份的证明,用来产生加密数据让公开用户使用公钥查看,从而证明A的身份。

  • 相关阅读:
    PHP 周转换为日期(最后一天) date("o-W")转Y-m-d日期——贴上代码
    开机后apache假死问题解决
    JS控制滚动条 —— 进度条的简单制作
    2014年初组装的第一台电脑
    开启mysql远程连接
    PHP数组的指针操作方法
    Ubuntu Server 13.04安装图形界面
    utf-8和GBK中文字符的长度计算
    2014校园招聘——历程2
    基于LLVM开发属于自己Xcode的Clang插件
  • 原文地址:https://www.cnblogs.com/yumingle/p/6550510.html
Copyright © 2020-2023  润新知