• sshd_config


     

    1.sshd_config


       选项不区分大小写,参数区分大小写。

    sshd_config选项及参数
    选项默认值说明
    AcceptEnv 不接受任何值  
    AddressFamily any any/inet/inet6
    AuthorizedKeysFile .ssh/authorized_keys 授权密钥文件
    HostbasedAuthentication no 基于主机的客户端认证
    AddressFamily   any/inet/inet6
    port 22  
    ListenAddress    
    LoginGraceTime 2m 连接失败等待时间
    PasswordAuthentication yes  
    PermitEmptyPasswords no  
    PermitRootLogin yes

    yes/without-password/forced-commands-only/no

    PrintLastLog

    yes

    登录的时候显示如下信息:

    Last login: Sat May 27 10:57:13 2017 from 172.200.36.71

    Protocol 2  
    PubkeyAuthentication yes 仅仅在协议2适用
    UseDNS yes  

     

    2.ssh_config


      影响ssh命令行为的参数,配置文件位于“/etc/ssh/ssh_config”、“~/.ssh/config”以及命令行参数(优先级依次升高)。

    ssh提供的选项
    选项默认值说明

    -1

    -2

      使用协议1或协议2

    -4

    -6

      使用地址协议ipv4或ipv6
    -b   指定本地连接用地址
    -E log_file   重定向标准错误到文件
    -F configfile

    /etc/ssh/ssh_config

    ~/.ssh/config

    指定的优先级最高
    -i identity_file

    协议1:

        ~/.ssh/identity

    协议2:

        ~/.ssh/id_dsa

        ~/.ssh/id_ecdsa

        ~/.ssh/id_ed25519

        ~/.ssh/id

    私钥
    -l login_name   指定用户

    -p port

    22 连接的端口
    PasswordAuthentication yes yes/no
    Protocol 2

    1/2/2,1

    "2,1" 表示当协议2不可用时,使用协议1

    PubkeyAuthentication yes

    yes/no

    仅仅适用于协议2

    StrictHostKeyChecking ask

    yes/no/ask

    Are you sure you want to continue connecting (yes/no)?

       用户配置文件:

    免去yes确认
    StrictHostKeyChecking no
    #IdentityFile ~/.ssh/identity
    IdentityFile ~/.ssh/id_rsa
    #IdentityFile ~/.ssh/id_dsa
    服务监听
    Port 22
    Protocol 2
    强制公钥验证
    PubkeyAuthentication yes
    #PasswordAuthentication no
    user view

    3.ssh密钥验证


       基于ssh协议创建管理密钥。基于 ssh1 version 创建 RSA 密钥;基于 ssh2 version 创建 RSA & DSA 密钥。在不给出必要选项时创建 ssh2 版的 RSA 密钥。用法上分为“用户验证”,和“主机密钥”;用户验证时,建议给密钥加密(长于10位),主机密钥建议不用加密。倘若加密后,密码忘记了,就只能重新生成密钥了。

    -b    指定位数
    -e    输出私钥的公钥内容
    -f    指定密钥文件的文件名(包括输入输出)
    -t    指定创建的密钥类型(RSA1 RSA DSA)
    -l    打印公钥指纹

     

    生成dsa密钥
    # ssh-keygen -t dsa -b 1024 -f dsa.key
    生成rsa密钥
    # ssh-keygen -t rsa -b 2048 -f rsa.key
    输出公钥,直接生成的和输出的公钥格式不同。
    # ssh-keygen -e -f dsa.key
    打印公钥指纹
    $ ssh-keygen -l -f id_rsa.pub
    2048 9f:e5:f5:fb:26:08:c9:71:48:b0:27:cf:f7:c4:74:a3 id_rsa.pub (RSA)

    3.1.rsa非对称密钥身份验证

      我们使用的openssh-server默认就支持公钥验证登录(无需任何配置)。只需用工具生成密钥对即可。仅仅需要把公钥字符串保存到指定文件、设置好目录、文件属性即可。

    $ ssh-keygen
    $ cat id_rsa.pub >> ~/.ssh/authorized_keys
    $ chmod 700 ~
    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/*

    上边设置了属性,当然要是执行的用户没有问题,属主、属组应该是没有问题的。

    3.2.dsa非对称密钥身份验证

     

    4.工具的公钥验证


    4.1.ssh secure shell

    4.1.1 生成登陆秘钥

    “Edit”-〉“settings”,找到“keys”,生成秘钥。

    使用rsa秘钥,默认设定,自定义秘钥名称。

    找到公钥。上传到服务端。

     

    4.1.2 要登陆的服务端设定

    转换密钥格式

    $ ssh-keygen -i -f 430g2 >> ~/.ssh/authorized_keys

    退出当前登陆,或者直接重新登陆。

     

    4.2.putty

    4.2.1 使用puttygen生成秘钥对

     

    4.2.2 转换秘要格式同上

     

    4.2.3 选择认证秘钥

    putty配置菜单,“连接”-〉“SSH”->“认证”,“浏览”“认证秘钥文件”。

    备份

    ssh secure shell

      “Profiles”设定的是关联到某一台主机的配置信息,点击“File-Save Layout”生成“*.ssh2”;“Settings”配置的是全局配置信息,点击“File-Save Settings”生成default.ssh2”。两个一起配置会对所有连接生效。

    putty

      备份注册表节点“HKEY_CURRENT_USER/Software/SimonTatham”。

    5.免密码登录


        从客户端来看,SSH提供两种级别的安全验证。

    第一种级别(基于口令的安全验证)

        在需要登录的主机(openssh-server)上拥有帐号和口令,就可以登录到需要登录的主机(openssh-clients)。在client端和server端的数据传输都会被加密,但是不能保证正在连接的服务器就是真正需要连接的服务器。

    第二种级别(基于密匙的安全验证)

        创建一对密匙,把公用密匙放在需要访问的服务器上(server端)。需要连接到openssh-server时,客户端用创建的密匙首先进行安全验证请求。服务器收到请求之后,在该服务器上用户主目录下寻找创建的公匙,然后把公钥和客户端发送来的秘钥请求进行验证。

        一对秘钥:公钥、私钥。使用公钥加密,私钥来解;使用私钥加密,公钥验证。公钥的作用:加密和验证;私钥的作用:加密和解密。

    基于密钥的验证(无密码登录)

        sunny@hhh1 ==>> root@hhh2
    1&2# rpm -qa | grep openssh-clients
    1&2# rpm -qa | grep openssh
    1$ ssh-keygen            (一路回车)
    1$ ls ~/.ssh
    1$ scp ~/.ssh/id_rsa.pub root@hhh2:/root/test/
    1$ vi /etc/ssh/ssh_config

    wKiom1ON3_XwLYFLAABMFQg_fDM703.jpg                                                 

            * ssh-keygen生成的正好是这个名字。前面是个“#”,表示这个是默认值。

    1$ ssh hhh2
    2# cat /root/test/id_rsa.pub > /root/test/loginhhh
    2# chmod 700 /root/test
    2# chmod 600 /root/test/logintest
    2# vi /etc/ssh/sshd_config

    wKiom1ON2vizCGD6AAB0OE5gKQE326.jpg                                      

    2# /etc/init.d/sshd restart
    2# exit
    1# ssh hhh2

    * 说明:

            设置无密码登录以后,首次登录需要确认一次登录。只需要输入 “yes” 。

     上面的说明就是说如果在脚本中这么个应用虽然免去输入密码,可是还得输入“yes”来确认呢。如果有1w台主机需要登录呢。是不是要疯呢,答案是不必疯。

    # vi /etc/ssh/ssh_config

    wKioL1OjNIXx9jb9AAA2_EyemwQ400.jpg                                                 

    该选项默认是 ask ,这么一个修改,便不再询问。……(* ssh_config)

    * FAQ-01

            经常在配置完成后,发现登陆时提示需要密码。检查好几遍都没有发现那里出现错误。

        在上边的例子中是把公钥文件改名。而实际生产环境常常考虑到多人维护的问题,使用默认

        名称。这个时候文件名应该是:authorized_keys,出现问题的症结在于文件名错误地

        写成:authorized.keys。好像以“.”分隔文件名已经成为习惯了。

    # cp id_rsa.pub authorized_keys

    * FAQ-02

            配置上问题检查完了,也有无法登陆的问题。关闭防火墙,检查selinux试试看。

    # sestatus
    # vi /etc/selinux/config
    # iptables -L
    # iptables -F
    # /etc/init.d/iptabes save
    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    lsf运行lsload命令显示“lsload: Host does not have a software license”
    linux nfs远程挂载和卸载
    连接EMC存储系统
    linux 挂载ntfs格式的硬盘
    WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@584]
    循环更新sqlserver数据库表ID
    【BZOJ 1563】 (四边形优化、决策单调性)
    【BZOJ 3028】 3028: 食物 (生成函数)
    【BZOJ 3027】 3027: [Ceoi2004]Sweet (容斥原理+组合计数)
    【BZOJ 1061】 1061: [Noi2008]志愿者招募 (线性规划与网络流)**
  • 原文地址:https://www.cnblogs.com/argor/p/7910301.html
Copyright © 2020-2023  润新知