码迷,mamicode.com
首页 > 其他好文 > 详细

ssh基于密钥认证的登录方式

时间:2017-10-07 21:21:04      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:ssh

      (ssh:secure shell, protocol, 22/tcp,安全的远程登录)            

SSH相关的安装包:

    openssh-clients.x86_64 SSH的客户端安装包

    openssh-server.x86_64  SSH的服务器端安装包

    openssh.x86_64  SSh的通用设置,服务于服务器端和客户端

 

基于密钥的认证:

1、使用到的命令:

a)  ssh-keygen    生成ssh认证的私钥和公钥

b)  ssh-copy-id    ssh认证的公钥从客户端拷贝到服务器端生成authorized_keys文件,该文件中存放公钥。

2、客户端的操作:

        a)  生成密钥对:

     非交互式:ssh-keygen –t rsa [-P ‘ ‘ ] [-f "~/.ssh/id_rsa"]

        -t:指定加密的方式

        -P:指定加密的密码

        -f:指定生成的私钥地址

   (该方式生成的私钥在用于认证的时候需要输入指定的密码)

    交互式:ssh-keygen (直接回车就可以了)

    (该方式会进行各种确认,提示是否生成相应的文件。)

       b) 把公钥文件传输至远程服务器对应用户的家目录:

        ssh-copy-id [-i [identity_file]][user@]host

    例如:ssh-copy-id  root@172.17.254.244

    会自动生成authorized_keys文件,这里是存放的id_rsa.pub文件中的公钥。

3、设置代理ssh-agent

    如果密钥设置了密码,每次输入都很麻烦,这时候可以用ssh-agent代理,只要输入一次口令,之后都可以用。退出会话之后就失效。

        ssh-agent bash   启动代理

       ssh-add  添加代理密码(这个是交互式命令,如果私钥有密码,会自动提示输入密码。)

4、实现多台客户端的免密登录

    以上介绍的都是两台机器之间的免密登录,每台机器对应家目录下的.ssh/目录下只有一个authorized_keys文件,如何实现同一台服务器可以多台客户端免密登录呢?

根据之前我们介绍的,在authorized_keys这个文件中存放的是客户端ssh认证的公钥,所以我们可以参考其中的格式,将客户端ssh认证的公钥全部存放到其中即可。

    当然,我们就不能重复使用ssh-copy-id这个命令了,否则将会造成覆盖,达不到预期的效果。

  a) 将客户端对应家目录中.ssh/目录下生成的id_rsa.pub文件拷贝到服务器端

    scp ~/.ssh/id_rsa.pub 172.17.253.23

  b) 将从客户端拷贝过来的公钥内容,添加到authorized_keys文件中,具体做法如下:

    cat id_rsa.pub >> ~/.ssh/authorized_keys 

  c)只要将每一台客户端的公钥都添加到服务器端authorized_keys文件中,就可以实现多台客户端同时免密登录服务器了。


本文出自 “Linux运维” 博客,请务必保留此出处http://jk6627.blog.51cto.com/12002684/1970636

ssh基于密钥认证的登录方式

标签:ssh

原文地址:http://jk6627.blog.51cto.com/12002684/1970636

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!