zoukankan      html  css  js  c++  java
  • Centos7 密钥对登陆(适用于群晖DSM)

    www.swack.cn - 原文链接:Centos7 密钥对登陆(适用于群晖DSM)

     

    1.生成证书

     

    此处证书使用swack用户生成

    注:不要使用root生成证书,因为我们后面会禁用root登陆

    [swack@localhost ~]$ ssh-keygen -t rsa -b 2048 -C "swack_test"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/swack/.ssh/id_rsa):
    Created directory '/home/swack/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/swack/.ssh/id_rsa.
    Your public key has been saved in /home/swack/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:BRidXhVBsAYWEt73wp8KzQa52vXLMKyvyEpuV8NGd44 swack_test
    The key's randomart image is:
    +---[RSA 2048]----+
    | +==o.+=o |
    | ..+oo.. |
    | ....= |
    | o... |
    | oS.o+. |
    | =Eo.. |
    | . oo.O o |
    | o...+ = * |
    | .oo+ +oo +. |
    +----[SHA256]-----+

     

    执行完毕后,会在用户home目录生成.ssh目录,其下生成两个证书文件

     

    • 公钥文件:.ssh/id_rsa.pub
    • 密钥文件:.ssh/id_rsa

     

    2.配置ssh

     

    修改 /etc/ssh/sshd_config 可以配置ssh的相关参数(需要root权限)

     

    [root@localhost swack]# vim /etc/ssh/sshd_config

     

    为了使得系统安全性进一步提高,我们做一下更改

     

    • 修改默认ssh的默认端口22到8022(此处端口可自定义)
    • 禁用密码认证进制
    • 禁止root权限登陆
    • 使用密钥对登陆

     

    #       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
    
    # This is the sshd server system-wide configuration file.  See
    # sshd_config(5) for more information.
    
    # This sshd was compiled with PATH=/usr/local/bin:/usr/bin
    
    # The strategy used for options in the default sshd_config shipped with
    # OpenSSH is to specify options with their default value where
    # possible, but leave them commented.  Uncommented options override the
    # default value.
    
    # If you want to change the port on a SELinux system, you have to tell
    # SELinux about this change.
    # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
    #
    Port 8022
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    HostKey /etc/ssh/ssh_host_rsa_key
    #HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    
    # Ciphers and keying
    #RekeyLimit default none
    
    # Logging
    #SyslogFacility AUTH
    SyslogFacility AUTHPRIV
    #LogLevel INFO
    
    # Authentication:
    
    #LoginGraceTime 2m
    PermitRootLogin no
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    
    PubkeyAuthentication yes
    
    # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
    # but this is overridden so installations will only check .ssh/authorized_keys
    AuthorizedKeysFile      .ssh/authorized_keys
    
    #AuthorizedPrincipalsFile none
    
    #AuthorizedKeysCommand none
    #AuthorizedKeysCommandUser nobody
    
    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
    #HostbasedAuthentication no
    # Change to yes if you don't trust ~/.ssh/known_hosts for
    # HostbasedAuthentication
    #IgnoreUserKnownHosts no
    # Don't read the user's ~/.rhosts and ~/.shosts files
    #IgnoreRhosts yes
    
    # To disable tunneled clear text passwords, change to no here!
    #PasswordAuthentication yes
    #PermitEmptyPasswords no
    PasswordAuthentication no
    
    # Change to no to disable s/key passwords
    #ChallengeResponseAuthentication yes
    ChallengeResponseAuthentication no
    
    # Kerberos options
    #KerberosAuthentication no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes
    #KerberosGetAFSToken no
    #KerberosUseKuserok yes
    
    # GSSAPI options
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials no
    #GSSAPIStrictAcceptorCheck yes
    #GSSAPIKeyExchange no
    #GSSAPIEnablek5users no
    
    # Set this to 'yes' to enable PAM authentication, account processing,
    # and session processing. If this is enabled, PAM authentication will
    # be allowed through the ChallengeResponseAuthentication and
    # PasswordAuthentication.  Depending on your PAM configuration,
    # PAM authentication via ChallengeResponseAuthentication may bypass
    # the setting of "PermitRootLogin without-password".
    # If you just want the PAM account and session checks to run without
    # PAM authentication, then enable this but set PasswordAuthentication
    # and ChallengeResponseAuthentication to 'no'.
    # WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
    # problems.
    UsePAM yes
    
    #AllowAgentForwarding yes
    #AllowTcpForwarding yes
    #GatewayPorts no
    X11Forwarding yes
    #X11DisplayOffset 10
    #X11UseLocalhost yes
    #PermitTTY yes
    #PrintMotd yes
    #PrintLastLog yes
    #TCPKeepAlive yes
    #UseLogin no
    #UsePrivilegeSeparation sandbox
    #PermitUserEnvironment no
    #Compression delayed
    #ClientAliveInterval 0
    #ClientAliveCountMax 3
    #ShowPatchLevel no
    #UseDNS yes
    #PidFile /var/run/sshd.pid
    #MaxStartups 10:30:100
    #PermitTunnel no
    #ChrootDirectory none
    #VersionAddendum none
    
    # no default banner path
    #Banner none
    
    # Accept locale-related environment variables
    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
    AcceptEnv XMODIFIERS
    
    # override default of no subsystems
    Subsystem       sftp    /usr/libexec/openssh/sftp-server
    
    # Example of overriding settings on a per-user basis
    #Match User anoncvs
    #       X11Forwarding no
    #       AllowTcpForwarding no
    #       PermitTTY no
    #       ForceCommand cvs server
    

     

    此处如下修改:

     

    • Port 8022
    • PasswordAuthentication no
    • PermitRootLogin no
    • PubkeyAuthentication yes

     

    重启ssh服务

     

    [root@localhost swack]# systemctl restart sshd.service

     

    2.配置公钥

     

    在.ssh目录,新建一个文件

     

    • 证书验证文件:.ssh/authorized_keys

     

    将公钥证书文件写到证书验证文件里

     

    [swack@localhost ~]$ touch .ssh/authorized_keys
    [swack@localhost ~]$ cat /home/swack/.ssh/id_rsa.pub >> /home/swack/.ssh/authorized_keys
    [swack@localhost ~]$ cat .ssh/authorized_keys
    ssh-rsa
    AAAAB3NzaC1yc2EAAAA...
    swack_test

    注:这里需要把允许登陆的centos7服务的终端的公钥id_rsa.pub添加到authorized_keys文件中

    3.设置 .ssh 目录权限

     

    [swack@localhost ~]$ chmod -R 700 .ssh
    [swack@localhost ~]$ chmod 600 .ssh/authorized_keys

     

    4.测试登陆(基于windows 10)

     

    需要生成客户本地主机的公钥,并把密钥写入服务器的authorized_keys文件中

     

    ssh登陆

     

    此处使用的工具是GitBash

    下载地址:WinSCP-5.15-Setup.exe

    使用 ssh -p 8022 swack@192.168.241.3 登陆

     

    linux_20190527_5

     

    sftp登陆

     

    此处我们使用的工具是WinSCP

    下载地址:Git-2.15.1.2-64-bit.exe

    linux_20190527_3

     

    在WinSCP的高级设置里选择密钥文件

     

    linux_20190527_4

     

  • 相关阅读:
    设计模式-可复用面向对象软件基础笔记
    C#--笔记
    win系统下nodejs安装及环境配置
    三步将Node应用部署到Heroku上 --转载
    Ubuntu 重启命令
    Ubuntu ssh免密登录
    Ubuntu Hadoop环境搭建(Hadoop2.6.5+jdk1.8.0_121)
    Ubuntu vim使用
    Scala学习——array与arraybuffer的区别(初)
    Scala学习——可变参数(初)
  • 原文地址:https://www.cnblogs.com/swack/p/10950428.html
Copyright © 2011-2022 走看看