zoukankan      html  css  js  c++  java
  • linux配置ssh公钥认证,打通root用户的免密码输入的scp通道

    1.ssh-keygen

         ssh-keygen是unix-like系统的一个用来生成、管理ssh公钥和私钥的工具。


    2.用法

    常用的重要的选项有:

    -b num   指定生成多少比特长度的key,单位为b,默认为1024b

    -t    指定生成key的类型,也就是使用哪一种加密算法,可选的有rsa1 | rsa | dsa

    3.

    [root@iDirector ~]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): <-- 直接输入回车
    Enter passphrase (empty for no passphrase): <-- 直接输入回车
    Enter same passphrase again: <-- 直接输入回车
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    23:12:af:af:37:ea:e5:2d:49:63:97:27:d4:bf:2d:75 root@iDirector
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |    .    .       |
    |     o  . .      |
    |    . o.S. .     |
    |     o+.+.. . . E|
    |    .o.+ o   + . |
    |     +=.    o .  |
    |   .++oo.    .   |
    +-----------------+
    [root@iDirector ~]# ll /root/.ssh/
    id_rsa       id_rsa.pub   known_hosts 
    在程序提示输入passphrase时直接输入回车,表示无证书密码。 上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户家目录的.ssh子目录中。 


    转载自:http://www.361way.com/ssh-public-key/3662.html

    在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证。
    便于理解,我这里指定两台主机为 A 和 B 。如果A主机想免密码登录到B主机上,则A主机上存放私钥,B 主机上存放公钥。
    通过ssh-keygen 命令生成的两个文件为:公钥文件 ~/.ssh/id_rsa.pub; 私钥文件 ~/.ssh/id_rsa 。
    而B主机上存放公钥时,需要将id_rsa.pub的内容存放到~/.ssh/authorized_keys 文件内,并且保证权限为600

        #将key导入到远程的B主机上,并修改权限
       #在A主机上操作
    $ cat /root/.ssh/id_rsa.pub | ssh root@远程服务器ip 'cat - >> ~/.ssh/authorized_keys' #B主机上操作 $ chmod 600 ~/.ssh/authorized_keys

    不过还有更简单的方法,不需要在B主机上再修改权限 ,而直接将公钥内容导入到远程主机上,使用ssh-copy-id命令,如下:

    $ ssh-copy-id  -i /root/.ssh/id_rsa root@xxx,xxx,xxx,xxx

    配置完key后,需要在sshd_config文件中开启key认证

        $ vim /etc/ssh/sshd_config
        PubkeyAuthentication yes  //将该项改为yes    

    修改完成后,通过/etc/init.d/sshd restart 重启ssh服务重新加载配置。如果想要禁用密码认证,更改如下项:

        $ vim /etc/ssh/sshd_config
        UsePAM yes
        为
        UserPAM no

    转载自:http://blog.csdn.net/aabbcc456aa/article/details/18981279

    如何让连接新主机时,不进行公钥确认?

    在首次连接服务器时,会弹出公钥确认的提示。这会导致某些自动化任务,由于初次连接服务器而导致自动化任务中断。或者由于  ~/.ssh/known_hosts 文件内容清空,导致自动化任务中断。 SSH 客户端的 StrictHostKeyChecking 配置指令,可以实现当第一次连接服务器时,自动接受新的公钥。只需要修改 /etc/ssh/ssh_config 文件,包含下列语句:

    Host *
     StrictHostKeyChecking no

    或者在 ssh 命令行中用 -o 参数

    $ ssh  -o StrictHostKeyChecking=no  192.168.0.110

     

  • 相关阅读:
    lua学习项目笔记
    Jenkins 安装、配置与项目新建及构建
    Gitlab的安装及项目新建
    PHP常见排序算法
    抽象类和接口的区别
    分布式版本控制系统Git的安装及使用
    深入解析OpenCart的代理类proxy
    PHP模式设计之单例模式、工厂模式、注册树模式、适配器模式、观察者模式
    linux命令行传递参数定期执行PHP文件
    php类中的$this,static,const,self这几个关键字使用方法
  • 原文地址:https://www.cnblogs.com/blitheG/p/7603322.html
Copyright © 2011-2022 走看看