精华内容
下载资源
问答
  • OPENSSH服务器

    2018-12-03 19:18:00
    1.OPENSSH概念 OpenSSH是SSH(Secure Shell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之 间传送文件。而实现此功能的传统方式,如telnet、 rcp ftp、 rlogin、rsh都是极为不安全的,并且...

    一、理论概念

    1.OPENSSH概念

    OpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明 文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据, 并由此来代替原来的类似服务。目前OpenSSHOpenBSD的子项目

    2.OPENSSH工作原理

    • 服务器端开启SSH服务,在端口22监听客户端请求
    • 客户端发出请求,如果是第一次与服务器建立连接,服务器端会向客户端发送一个rsa key
    • 客户端接收到服务器端发送过来的rsa key后,就会采用与服务器端协商好的加密算法,生成会话密钥(此会话 密钥用于加密客户端与服务器端之间的会话),并用rsa key加密会话密钥,并发送给服务器端
    • 服务器端就用对应的私钥解密已加密的会话密钥,然后用此会话密钥加密确认信息,发送给客户端。客户端 用会话密钥解密加密的确认信息,到此,密钥交换成功和服务器认证成功

    3.OPENSSH协议

    SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
    SSH1协议:由单个协议提供密钥交换、身份认证与加密的功能
    SSH2协议:

    • 传输层协议(主要提供密钥交换与服务器端认证功能)
    • 认证协议(主要提供密钥交换与服务器端认证功能)
    • 连接协议(主要提供远程执行命令功能)

    4.OPENSSH端口:TCP 22

    5.OPENSSH常用客户端工具

         SecureCRT
         Xshell
         Xmanager
         MobaXterm

    6.DROPBEAR

    Dropbear是一个相对较小的SSH服务器和客户端。是另一款ssh协议的开源实现
    它类似SSH,实现完整的SSH客户端和服务器版本2协议。
    但它不支持SSH版本1,以节省空间和资源,并避免在 SSH版本1的固有的安全漏洞。
    它支持scp。

    二、OPENSSH服务安装配置

    服务端IP:192.168.192.133
    客户端IP:192.168.192.223
    未配置前,每次服务端登录客户端都要输入密码

    1.关闭防火墙和Selinux

        [root@mail ~]# systemctl stop firewalld
        [root@mail ~]# setenforce 0
    

    2.安装OPENSSH服务器

        [root@mail ~]# yum install openssh-server -y
    

    3.OPENSSH服务器、客户端的配置文件

    1. /etc/ssh/sshd_config #服务端配置文件!!!
    2. /etc/ssh/ssh_config #客户端配置文件!!!

    4.OPENSSH基于密钥的认证(仅限于双管理员用户或单管理员到普通用户)

    服务端:
        [root@mail ~]# cd .ssh/
        [root@mail .ssh]# ls
        id_rsa  id_rsa.pub
        [root@mail .ssh]# ssh-keygen                #普通主机 
        Generating public/private rsa key pair.        
        Enter file in which to save the key (/root/.ssh/id_rsa): 
        /root/.ssh/id_rsa already exists.
        Overwrite (y/n)? 
        [root@mail .ssh]# ls
        id_rsa  id_rsa.pub
        [root@mail .ssh]# cat id_rsa.pub > authorized_keys            #此种方式 针对多台主机时,采用此方式较好 
        [root@mail .ssh]# ls
        authorized_keys  id_rsa  id_rsa.pub
        [root@mail .ssh]# scp authorized_keys 192.168.192.223:/root/.ssh/               #此种方式 针对多台主机时,采用此方式较好 
        The authenticity of host '192.168.192.223 (192.168.192.223)' can't be established.
        ECDSA key fingerprint is SHA256:ZUnrgOjaa1LqFlxTcgwFQesY6GyOVXGtxZrsHtVmNdU.
        ECDSA key fingerprint is MD5:3e:60:cf:7b:1d:8c:c7:45:5a:42:33:dc:43:da:4b:05.
        Are you sure you want to continue connecting (yes/no)? yes
        Warning: Permanently added '192.168.192.223' (ECDSA) to the list of known hosts.
        root@192.168.192.223's password: 
        authorized_keys                               100%  400   472.2KB/s   00:00    
        [root@mail .ssh]# ssh root@192.168.192.223
        Last login: Tue Dec  4 02:32:04 2018 from 192.168.192.133
        [root@c66 ~]#
      #此时登录客户端192.168.192.223的管理员用户不需要输入密码,但客户端登录服务端的管理员用户需要密码
    客户端:
        [root@c66 ~]# ls .ssh/
        authorized_keys
        [root@c66 ~]# ssh root@192.168.192.133
        The authenticity of host '192.168.192.133 (192.168.192.133)' can't be established.
        ECDSA key fingerprint is HA256:jsndQ04TKiKB3GM9c62DO5Cg6SjSzLo+pAyVRGNexCE.
        ECDSA key fingerprint is MD5:d5:fb:ef:5c:56:28:52:6f:81:ce:8c:58:17:83:de:9b.
        Are you sure you want to continue connecting (yes/no)? yes
        Warning: Permanently added '192.168.192.133' (ECDSA) to the list of known hosts.
        root@192.168.192.133's password: 
        Last login: Mon Dec  3 18:22:43 2018 from 192.168.192.223
        [root@mail ~]# 
    

    5.OPENSSH基于口令的认证(双管理员或双普通用户,或普通用户登录管理员用户,或管理员用户登录普通用户)

    服务端操作:
        [root@mail ~]# useradd user3
        [root@mail ~]# passwd user3
        Changing password for user user3.
        New password: 
        BAD PASSWORD: The password is shorter than 8 characters
        Retype new password: 
        passwd: all authentication tokens updated successfully.    
    
    
    客户端操作:
        [root@c66 ~]# useradd user4
        [root@c66 ~]# passwd user4
        Changing password for user user4.
        New password: 
        BAD PASSWORD: The password is shorter than 8 characters
        Retype new password: 
        passwd: all authentication tokens updated successfully.
        
    测试:
        [root@mail ~]# su - user3
        Last login: Mon Dec  3 18:47:42 CST 2018 on pts/0
        [user3@mail ~]$ ls -a
        .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
        [user3@mail ~]$ ssh-keygen
        Generating public/private rsa key pair.
        Enter file in which to save the key (/home/user3/.ssh/id_rsa): 
        Created directory '/home/user3/.ssh'.
        Enter passphrase (empty for no passphrase): 
        Enter same passphrase again: 
        Your identification has been saved in /home/user3/.ssh/id_rsa.
        Your public key has been saved in /home/user3/.ssh/id_rsa.pub.
        The key fingerprint is:
        SHA256:JixBP8imSmUXmNDIrnsVSR6+p0blYRvb6G3wtIxwHxw user3@mail.cc74.com
        The key's randomart image is:
        +---[RSA 2048]----+
        |..+ +.           |
        | o *oo.          |
        |.  *=+o          |
        | .oo*o=.E        |
        |... .*oOS.       |
        |o.  =.Oo=        |
        |.. o * O o       |
        |. . o o B        |
        | . .   .         |
        +----[SHA256]-----+
        [user3@mail ~]$ ls -a
        .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .ssh
        #ssh-copy-id会自动把公钥放到 要访问的服务器的.ssh/authorized_keys 并且保证权限为600
        [user3@mail ~]$ ssh-copy-id user4@192.168.192.223        
        /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user3/.ssh/id_rsa.pub"
        The authenticity of host '192.168.192.223 (192.168.192.223)' can't be established.
        ECDSA key fingerprint is SHA256:ZUnrgOjaa1LqFlxTcgwFQesY6GyOVXGtxZrsHtVmNdU.
        ECDSA key fingerprint is MD5:3e:60:cf:7b:1d:8c:c7:45:5a:42:33:dc:43:da:4b:05.
        Are you sure you want to continue connecting (yes/no)? yes
        /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are  already installed
        /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
        user4@192.168.192.223's password: 
        Number of key(s) added: 1
        Now try logging into the machine, with:   "ssh 'user4@192.168.192.223'"
        and check to make sure that only the key(s) you wanted were added.    
        [user3@mail ~]$ ssh user4@192.168.192.223
        [user4@c66 ~]$
        [root@c66 ~]# ls -a /home/user4/
        .  ..  .bash_logout  .bash_profile  .bashrc  .ssh
    

    #其余的测试就不写出来啦

    展开全文
  • openssh服务

    2021-09-24 14:44:29
    1 openssh详解 1.1 什么是openssh OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。...OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务 ...

    1 openssh详解

    1.1 什么是openssh

    OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务

    • 延伸:
      • ssh协议有两个版本:
        v1:基于CRC-32 做MAC,不安全; (一般用于实现主机认证)
        v2:基于协议协商选择双方都支持的最安全的MAC机制
        基于DH做密钥交换,基于RSA或DSA实现身份认证,从而实现无需输入账号面膜
        客户端通过检查服务器端的主机秘钥来判断是否能够继续通信;
      • 认证方式:
        1、基于口令的认证
        2、基于密钥的认证

    1.2 为什么要使用openssh

    由于传统的telnet、rcp ftp等工具是明文传输数据的,对数据安全性存在很大的安全隐患,而OpenSSH可以对传输的数据进行加密从而大大提高了数据的安全性

    1.3 openssh工作原理

    openSSH是基于C/S架构工作的

    服务器端    //sshd,配置文件在/etc/ssh/sshd_config
    客户端     //ssh,配置文件在/etc/ssh/ssh_config
        ssh-keygen      //密钥生成器
        ssh-copy-id     //将公钥传输至远程服务器
        scp             //跨主机安全复制工具
    
    1. 服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd 会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥
    2. 客户端主动联机请求: 若客户端想要联机到 ssh 服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty 等客户端程序连接
    3. 服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)
    4. 客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥
    5. 回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统
    6. 开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全

    在这里插入图片描述

    1.4 OpenSSH程序简介

    1.4.1 OpenSSH的分为客户端和服务端两部分

     Clients端的配置文件:/etc/ssh/ssh_config
    Server端的配置文件:/etc/ssh/sshd_config
    Server端服务脚本:/etc/rc.d/init.d/sshd
    

    OpenSSH在Linux系统中默认是安装并启动的

    1. openssh 主要的关键包
      openssh.x86_64 5.3p1-104.el6 //服务端和客户端的公共组件
      openssh-askpass.x86_64 5.3p1-104.el6 //
      openssh-clients.x86_64 5.3p1-104.el6 //客户端安装包
      openssh-server.x86_64 5.3p1-104.el6 //服务端安装包

    2. openssl-clients 几个常用文件
      /etc/ssh/ssh_config //客户端配置文件
      /usr/bin/scp //远程复制文件
      /usr/bin/sftp //远程文件共享
      /usr/bin/slogin
      /usr/bin/ssh
      /usr/bin/ssh-add
      /usr/bin/ssh-agent
      /usr/bin/ssh-copy-id
      /usr/bin/ssh-keyscan

    3. openssl-server 几个常用文件
      /etc/rc.d/init.d/sshd
      /etc/ssh/sshd_config
      /etc/sysconfig/sshd

    1.4.2 服务器端配置文件/etc/ssh/sshd_config 主要参数详解

    服务端配置文件是让别人登陆时使用的,配置文件中使用“#”注释掉的一般就是使用默认

    参数说明
    #Port 22默认端口号,为了其安全一般要更改为其他端口
    #AddressFamily any说明要监听任意地址
    #ListenAddress 0.0.0.0监听本机所有IPV4的ip
    #ListenAddress ::监听本机所有的IPV6的地址
    #LoginGraceTime 2m登陆宽限时长 默认2分钟不登录自动关闭
    #PermitRootLogin yes是否支持管理员直接登陆
    #MaxAuthTries 6最大尝试次数 (6次以后终端断开)
    #MaxSessions 10最大并发允许链接数 (超过 将拒绝)
    #RSAAuthentication yes是否支持RSA密钥认证
    #PubkeyAuthentication yes是否支持公钥认证
    #AuthorizedKeysFile .ssh/authorized_keys默认保存口令的文件
    #PermitEmptyPasswords no是否支持空密码登陆

    1.4.3 客户端配置文件/etc/ssh/ssh_config 主要参数详解

    客户端配置文件时登陆别人的ssh使用的

    参数说明
    #Host *表示连接所有主机
    #Port 22默认连接端口
    #Cipher 3des加密时使用的加密机制
    #StrictHostKeyChecking ask严格的主机秘钥检查 即第一次连接时是否询问

    1.5 口令认证

    以服务器中本地系统用户的登录名称、密码进行验证。从客户机的角度看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举攻击时防御能力较弱
    在这里插入图片描述

    1. client端向server端发去连接请求
    2. server接受请求并向client端发送自己的主机公钥
    3. client输入密码,并使用server端公钥加密后发送给server(敏感信息安全传输)
    4. server接受加密的密码,使用私钥解密,匹配认证密码是否合法。合法则登录成功。

    1.6 密钥对认证

    首先客户端上的用户会在客户端生成一对密钥,并将自己的公钥上传到远程服务器上面(一般在对应用户的home目录下),自己保留私钥信息,之后在我们使用ssh命令远程登录服务器的时候,只需要我们输入远程服务器上面对应的用户名,而不需要再输入密码就可以进行登录
    在这里插入图片描述

    1. 客户端生成一对密钥,并将公钥上传至服务端(~/.ssh/authorized_keys)
    2. 客户端请求连接,包含主机名和当前用户
    3. 服务端从authorized_keys中查找是否有用户信息,如果有则向客户端发送一段随机字符串,并用客户端的公钥进行加密
    4. 客户端用自己的私钥对随机字符串进行解密,并返还给服务端
    5. 服务端将解密后的字符串与之前发送的字符串进行比对,如一致则验证通过

    公钥(Public Key)与私钥(Privtae Key)的关系

    公钥与私钥是成对生成,这两个密钥互不相同,可以互相加密与解密。
    不能根据一个密钥来推算出另一个密钥。
    公钥对外公开,私钥只有私钥的持有人才知道。
    公钥与私钥要配对使用,如果用公钥对数据进行加密,只有用相对就的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密

    1.7 SSH知识总结

    1.7.1 SSH的加密技术

    加密技术:传输过程,数据加密。
    1.SSH1没有对客户端的秘钥进行校验,很容易被植入恶意代码
    2.SSH2增加了一个确认联机正确性的Diffe_Hellman机制,每次数据的传输,Server都会检查数据来源的正确性,避免黑客入侵。
    SSH2支持RSA和DSA密钥
    DSA:digital signature Algorithm 数字签名
    RSA:既可以数字签名又可以加密

    1.7.2 SSH常识

    1. SSH是安全的加密协议,用于远程连接Linux服务器
    2. SSH的默认端口是22,安全协议版本是SSH2
    3. SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器
    4. SSH客户端包含ssh连接命令和远程拷贝scp命令等

    1.7.3 如何防止SSH登录入侵

    1. 自定义 SSH 服务配置
    [root@node1 ~]# cat /etc/ssh/sshd_config
    PermitRootLogin {yes|no}    //是否允许root用户远程登录系统
    PermitRootLogin without-password    //仅允许root用户基于密钥方式远程登录
    PasswordAuthentication {yes|no}     //是否启用密码身份验证,默认开启
    
    1. SSH 安全注意事项
    • 密码应该经常换且足够复杂
    [root@node1 ~]# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs   //生成30位的密码
    oTchjzhwEZK5s7XCQ50Fnj9r0vX7gQ
    [root@node1 ~]# openssl rand 20 -base64  //生成20位随机密码
    Di9ry+dyV40xVvBHirsc3XpBOzg=    
    
    • 使用非默认端口,修改默认端口为其他端口)

    • 限制登录客户端地址

    • 仅监听特定的IP地址

    • 禁止管理员直接登录

    • 仅允许有限制用户登录
      AllowUsers:允许登陆的用户白名单 (多个用户使用空格隔开)
      AllowGroups:允许登陆的组的白名单

    • 使用基于密钥的认证

    • 禁止使用空密码

    • 禁止使用SSHv1版本

    • 设定空闲会话超时时长

    • 利用防火墙设置ssh访问策略

    • 限制ssh的访问频度和并发在线数

    • 做好日志的备份,经常分析(集中于某台服务器)

    2 登录验证方式

    1、ssh的基本语法
    ssh [OPTIONS] [user]@server [COMMAND]

            -l user: 以指定用户身份连接至服务器;默认使用本地用户为远程登录时的用户;
                ssh user@server
                ssh -l user server
            -p PORT:指明要连接的端口
            -X   启用X11Forwarding,即转发X界面的请求;
            -x: 禁用;
            -Y:  启用信任的X11Forwarding
    

    2、ssh 基于秘钥的认证
    ssh-keygen语法:
    ssh-keygen [OPTIONS]

            -t {rsa|dsa} 密钥类型 一般使用rsa
            -b # 指明密钥长度
            -f /PATH/TO/OUTPUT_KEYFILE  指明密钥文件
            -P '' :指明加密密钥的密码,表示使用空密码
    

    2.1 密码验证(口令认证)

    2.1.1 准备两台虚拟机,一台作为客户端,一台作为服务端,用客服端远程连接服务端

    [root@node1 ~]# ssh root@192.168.25.110   ##root为服务端的用户,##192.168.25.110为服务端地址
    The authenticity of host '192.168.25.110 (192.168.25.110)' can't be established.
    ECDSA key fingerprint is SHA256:GnK28SJbU4C8Op2rmLAg5lcSBpfM/oeTUSmq0QkfdJY.
    ECDSA key fingerprint is MD5:5a:a5:35:49:b5:d0:1d:ce:f0:16:8a:b6:68:f2:d9:3d.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.25.110' (ECDSA) to the list of known hosts.
    root@192.168.25.110's password:      ##输入root用户的密码
    [root@node2 ~]$    ##此时由客户端成功连接到服务端
    

    2.1.2 修改服务端ssh服务的配置文件,对客服端远程登录进行限制

    [root@node2 ~]# vim /etc/ssh/sshd_config 
    37 LoginGraceTime 2m
     38 PermitRootLogin no   ##不允许root用户登录
     39 StrictModes yes
     40 MaxAuthTries 6   ##最大失败连接次数
     41 MaxSessions 10
     42 AllowUsers tom ##只允许tom用户远程登录,相当于白名单
    [root@node2 ~]# systemctl restart sshd   ##修改完配置文件需重启服务
    
    

    2.1.3 客户端登录权限的验证

    [root@node1 ~]# ssh harry@192.168.25.110
    harry@192.168.25.110's password: 
    Permission denied, please try again.  ##用harry用户登录,权限被拒
    [root@node1 ~]# ssh root@192.168.25.110
    root@192.168.25.110's password: 
    Permission denied, please try again.  ##用root用户登录,权限被拒
    
    [root@node1 ~]# ssh tom@192.168.25.110
    tom@192.168.25.110's password: 
    Last login: Thu Jul  9 11:27:11 2020 from 192.168.25.110
    [tom@node2 ~]$   ##tom用户成功远程连接
    ##注意:虽然root用户被禁止远程登录,但可通过tom用户作为中间用户来进行切换,只要知道root用户的密码就可以##
    
    [tom@node2 ~]$ su - root
    Password:    ##输入root的密码##
    Last login: Thu Jul  9 11:42:12 CST 2020 on pts/0
    Last failed login: Thu Jul  9 11:54:05 CST 2020 from 192.168.25.110 on ssh:notty
    There was 1 failed login attempt since the last successful login.
    [root@node2 ~]#   ##成功由tom用户切换为root用户
    ##如要解决此bug需要在服务端开启pam认证,不给tom用户使用su命令切换用户的权限##
    [root@node2 ~]# vim /etc/pam.d/su
    
     1 #%PAM-1.0
      2 auth            sufficient      pam_rootok.so
      3 # Uncomment the following line to implicitly trust users in the "wheel" group.
      4 #auth           sufficient      pam_wheel.so trust use_uid
      5 # Uncomment the following line to require a user to be in the "wheel" group.
      6 auth            required        pam_wheel.so use_uid  ##把此行的注释去掉
      7 auth            substack        system-auth
      8 auth            include         postlogin
      9 account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
     10 account         include         system-auth
     11 password        include         system-auth
     12 session         include         system-auth
     13 session         include         postlogin
     14 session         optional        pam_xauth.so
    ###修改为后再用tom用户进行切换就没有权限了
    [root@node1 ~]# ssh tom@192.168.25.110
    tom@192.168.25.110's password: 
    Last login: Thu Jul  9 11:55:02 2020 from 192.168.25.110
    
    [tom@node2 ~]$ su - root
    Password: 
    su: Permission denied
    [tom@node2 ~]$ 
    
    

    2.2 密钥对验证

    • 用户可通过使用公钥身份验证进行ssh登录身份验证。ssh允许用户使用私钥-公钥方案进行身份验证。这意味着将生成私钥和公钥这两个密钥。私钥文件用作身份验证凭据,像密码一样,必须妥善保管。公钥复制到用户希望登录的系统,用于验证私钥。公钥并不需要保密。拥有公钥的ssh服务器可以发布仅持有您私钥的系统才可解答的问题。因此,可以根据所持有的密钥进行验证。如此一来,就不必在每次访问系统时键入密码,但安全性仍能得到保证。

    • 使用ssh-keygen命令生成密码。将会生成私钥/.ssh/id_rsa和公钥/.ssh/id_rsa.pub

    • 生成ssh密钥后,密钥将默认存储在家目录下的.ssh/目录中。私钥和公钥的权限就分别为600和644。.ssh目录权限必须是700。

    2.2.1 在客户机中创建密钥对

    ssh-keygen命令
    可用的加密算法:RSA、ECDSA、DSA

    [root@node1 ~]# ssh-keygen -t rsa  ## -t 指定加密算法类型  ##生成密钥对
    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:
    SHA256:ch19XvS7ehReEWc36P+ViQ3C08fGyvWlnXpIOt5I3WA root@node2
    The key's randomart image is:
    +---[RSA 3072]----+
    |              .o*|
    |           . . +=|
    |          o + + +|
    |         . = * O+|
    |      . S . +E%+O|
    |       o    o=+O=|
    |           .o.+oo|
    |          .ooo.o.|
    |          .o.oo  |
    +----[SHA256]-----+
    
    

    2.2.2 将公钥文件上传到服务器中目标用户的公钥库

    [root@node1 ~]# ssh-copy-id root@192.168.25.111
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host '192.168.25.111 (192.168.25.111)' can't be established.
    ECDSA key fingerprint is SHA256:hQUryG5gU8B+A5iKi8iBZzTLWRvN1dosOSu7LxPrR5Y.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@192.168.25.111's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@192.168.25.111'"
    and check to make sure that only the key(s) you wanted were added.
    
    

    2.2.3 客户端使用密钥对验证登录

    [root@node1 ~]# ssh root@192.168.25.111
    Last login: Sat Sep 25 15:59:31 2021 from 192.168.25.110
    
    

    3 scp远程复制

    使用scp命令可以利用SSH安全连接与远程主机相互复制文件。使用scp命令时,除了必须指定复制源、目标外,还应指定目标主机地址、登录用户,执行后提示验证口令即可

    语法:
    scp [OPTIONS] SRC…DEST

    常用选项:
    -r: 递归复制,复制目录及内部文件时使用;
    -p: 保存源文件元数据信息中的属主、属组及权限;
    -q: 静默模式
    -P PORT: 指明远程服务器使用的端口
    两种模式:
    PUSH: scp [OPTIONS] /PATH/FROM/SOMEFILE … user@server:/PATH/TO/DEST

                       //复制本地文件至远程主机 (但远程目录一定要有写权限)
    

    PULL: SCP [OPTIONS] user@server:/PATH/FROM/SOMEFILE /PATH/TO/DEST

                      //远程目标主机文件至本地
    

    //将服务端的test文件传送到远程主机

    [root@server ~]# ls
    anaconda-ks.cfg  test2
    [root@server ~]# scp -p /root/test2 root@192.168.58.20:/opt/
    test2                                                                         100%    0     0.0KB/s   00:00    
    [root@node1 ~]# 
    //到node2 查看
    [root@client~]# ls /opt/
    data  test2
    

    //复制远程主机/etc/fstab至服务端当前目录下

    //在创建一个testing.txt的文件
    [root@client ~]# touch testing.txt
    [root@client ~]# ls
    anaconda-ks.cfg  testing.txt
    //在server,将client的testing cp到当前目录中来
     [root@server ~]# scp root@192.168.58.20:/root/testing.txt  ./
    testing.txt                                                                   100%    0     0.0KB/s   00:00    
    [root@server ~]# ls
    anaconda-ks.cfg  test2  testing.txt
    [root@node1 ~]# 
    
    
    展开全文
  • Openssh服务

    2020-04-04 20:22:33
    文章目录1 ssh基本知识2 ssh命令的用法3 openssh服务的key认证4 更改端口5 指定IP可连6 限制登录超级用户7 用户黑白名单 1 ssh基本知识 [root@localhost ~]# nm-connection-editor ^C [root@localhost ~]# ssh root@...

    1 ssh基本知识

    在这里插入图片描述
    init 5 打开图形
    在这里插入图片描述

    [root@localhost ~]# nm-connection-editor ^C
    [root@localhost ~]# ssh root@172.25.254.200
    
    

    如果连不上需要将要连得主机火墙关掉。
    也可使用以下方式连接:

    [root@localhost ~]# ssh -l root 172.25.254.200
    root@172.25.254.200's password: 
    Last login: Sun Apr  5 01:23:48 2020 from 172.25.254.100
    

    w -i 命令可以得出谁连接你了

    [root@localhost ~]# w -i
     01:29:31 up 12 min,  3 users,  load average: 0.02, 0.20, 0.24
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     :0       :0               01:18   ?xdm?  53.68s  0.66s gdm-session-wor
    root     pts/0    :0               01:18    3.00s  0.19s  0.11s w -i
    root     pts/1    172.25.254.100   01:28    1:12   0.02s  0.02s -bash
    

    2 ssh命令的用法

    在这里插入图片描述
    后台打开gedit图形工具:

    [root@westos ~]# ssh -f -l root 172.25.254.200 -X gedit
    

    远程运行gedit命令:

     ssh -l root 172.25.254.200 -X -o RemoteCommand=gedit
    

    以172.25.254.1为跳板连接200

    [root@westos ~]# ssh -t root@172.25.254.1 ssh root@172.25.254.200
    

    3 openssh服务的key认证

    在这里插入图片描述
    在这里插入图片描述
    生成秘钥
    在这里插入图片描述
    上传秘钥锁别人:
    在这里插入图片描述
    被锁的生成文件为:
    在这里插入图片描述
    被锁的可以将登录密码关掉,这样只有有密码的才可以登录。

    [root@haha .ssh]# vim /etc/ssh/sshd_config
    [root@haha .ssh]# systemctl restart sshd.service
    

    在这里插入图片描述
    在这里插入图片描述
    若不想让原来拥有锁的人登,可以更改秘钥:
    在这里插入图片描述
    结果是:
    在这里插入图片描述
    再想让他登再改过去:

    mv  keys authorized_keys
    

    4 更改端口

    netstat-antlupe:n表示不解析端口
    在这里插入图片描述

    5 指定IP可连

    在这里插入图片描述

    [root@localhost ~]# vim /etc/ssh/sshd_config
    [root@localhost ~]# netstat -antlupe | grep sshd
    tcp        0      0 172.25.254.200:22       0.0.0.0:*               LISTEN      0          77280      39762/sshd          
    [root@localhost ~]# ssh -l root 127.0.0.1 
    ssh: connect to host 127.0.0.1 port 22: Connection refused
    [root@localhost ~]# ssh -l root 172.25.254.200
    root@172.25.254.200's password: 
    Last login: Sun Apr  5 03:35:50 2020 from 172.25.254.200
    
    

    6 限制登录超级用户

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    7 用户黑白名单

    限制candy:vim /etc/ssh/sshd_config

    [root@localhost ~]# vim /etc/ssh/sshd_config
    [root@localhost ~]# systemctl restart sshd.service
    
    
    [root@westos ssh]# ssh root@172.25.254.200
    root@172.25.254.200's password: 
    Last login: Sun Apr  5 04:14:18 2020 from 172.25.254.100
    [root@localhost ~]# exit
    logout
    Connection to 172.25.254.200 closed.
    [root@westos ssh]# ssh candy@172.25.254.200
    candy@172.25.254.200's password: 
    Permission denied, please try again.
    candy@172.25.254.200's password: 
    Permission denied, please try again.
    candy@172.25.254.200's password: 
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
    

    只允许candy: AllowUser candy

    展开全文
  • Linux之Openssh服务

    2020-03-25 21:08:22
    Linux之Openssh服务 [1].Openssh介绍 OpenSSH是SSH (Secure SHell) 协议的免费开源软件,可以通过网络在主机中开机shell的服务 软件安装名称:Openssh-server 配置文件:/etc/ssh/sshd_conf 默认端口:22 客户端...

    Linux之Openssh服务

    [1].Openssh介绍

    1. OpenSSH是SSH (Secure SHell) 协议的免费开源软件,可以通过网络在主机中开机shell的服务
    2. 软件安装名称:Openssh-server
    3. 配置文件:/etc/ssh/sshd_conf
    4. 默认端口:22
    5. 客户端命令:ssh

    在这里插入图片描述在这里插入图片描述

    [2].ssh命令

    ssh命令方式:

    ssh    username@ip    ##文本模式的链接
    ssh -X username@ip    ##可以在链接成功后开机图形
    
    参数作用
    ssh -l指定登录用户
    ssh -i指定密钥
    ssh -X开启图形
    ssh -f后台运行
    ssh -p指定端口
    ssh -o指定连接参数
    ssh -o指定连接跳板

    实验:

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    [3].Openssh服务的key认证

    1. Openssh认证方式

    1.密码认证:

    1. 至少6个字符
    2. 包含数字,字母,下划线特殊符号等
    3. 易泄漏
    4. 可被暴力破解
    5. 密码容易丢失

    实验:
    在这里插入图片描述

    2.密钥认证:

    1. 新型认证方式,分为公钥及私钥
    2. 公钥上传服务器
    3. 私钥配对认证,不会被盗用
    4. 攻击者一般无法通过密钥登录服务器

    3.密匙介绍:
    你必须为自己创建一对密匙,把公匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公匙,然后把它和你发送过来的公匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器

    实验:
    在这里插入图片描述在这里插入图片描述
    1.生成认证KEY

    在这里插入图片描述
    2.加密服务

    在这里插入图片描述在这里插入图片描述
    3.测试
    在这里插入图片描述在这里插入图片描述
    2.关于Openssh的文件

    文件作用
    ~/.ssh/authorized_keys##用于保存用户的公钥文件
    ~/.ssh/known_hosts##辨别服务器的唯一散列码
    ~/.ssh/id_dsa##用户的私钥文件
    ~/.ssh/id_rsa.pub##用户的公钥文件

    [4].Openssh服务的安全优化

    1.ssh服务的配置文件为/etc/sysconfig/sshd_config
    2.配置文件的几个参数;
    PasswordAuthentication yes|no
    是否开启用户密码认证,yes为支持no为关闭
    PermitRootLogin yes|no
    是否允许超级用户登陆
    AllowUsers student westos 用户白名单
    DenyUsers westos 用户黑名单
    3.systemctl服务
    systemctl status sshd 查看ssh服务的状态
    systemctl stop sshd 关闭ssh服务
    systemctl start sshd 开启ssh服务
    systemctl restart sshd 重新启动ssh服务
    systemctl enable sshd 设定sshd服务开机启动
    systemctl disable sshd 设定sshd服务开机关闭

    在这里插入图片描述在这里插入图片描述

    展开全文
  • openSSH服务与防火墙规则

    千次阅读 2019-01-07 18:00:38
    openSSH服务1.使用SSH访问远程命令行1.1 OpenSSH简介1.2 SSH版本1.3 SSH认证方式1.4 openSSH的工作模式1.5 Secure Shell示例1.6 SSH 主机密钥2.配置基于SSH密钥的身份验证3. 自定义SSH服务配置4. SSH 安全注意事项5....
  • 构建OpenSSH服务器

    2012-03-08 22:06:44
    服务器的远程管理对于管理员来说是十分方便的,但如何方便、安全的远程管理服务器就成为管理员首先要面对的课题,telnet...我们要利用SSH的密钥来实现安全的加密传输,这里用到的是OpenSSH,免费而且开源!:) 一、
  • windows上安装openSSH服务

    万次阅读 多人点赞 2019-05-26 15:44:03
    在windows上cmd,然后ssh ...首先windows上需要安装openSSH 1,下载openSSH windows版(注:该版本是64位) 链接: https://pan.baidu.com/s/19V2W_e1Agl4GSouW6U3JAQ 提取码: xgjp 2,解压到C:\Program Files\Op...
  • cygwin安装openssh服务

    千次阅读 2017-07-18 20:11:47
    操作系统:windows7cygwin中需要安装的程序:openssh安装过程:参见如下链接 (需要翻墙) https://techtorials.me/cygwin/sshd-configuration/ 成功安装后可能遇到的问题: windows防火墙开启,无法正常登陆。...
  • Linux服务篇--openssh服务

    千次阅读 2018-09-17 19:59:03
    Linux高级篇–SSH服务 一、 SSH ssh: secure shell, protocol, 22/tcp, 安全的远程登录 具体的软件实现:   OpenSSH: ssh协议的开源实现,CentOS默认安装   dropbear:另一个开源实现 SSH协议版本   ...
  • 配置openssh服务器

    2008-10-28 21:46:00
     SSH是一个用来替代TELNET、Rlogin以及Rsh的传统的远程登陆程序的工具...RedHat Linux 9将默认的远程管理服务设置成OpenSSH(一个ssh的替代产品)。不需要重新安装软件包!    一、配置openssh服务器    1...
  • windows上OpenSSH服务安装及启动 OpenSSH github上的下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases 解压到C:\Program Files\OpenSSH,建议是放在此目录下 cmd到openSSH路径下 依次执行: 1.安装...
  • window10 安装 openSSH服务

    千次阅读 2020-08-17 12:03:30
    下载 下载openSSH windows版 ...提取码:open 解压到指定路径 解压到C:\Program Files\OpenSSH 不要...1)安装sshd服务 powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 2)开放22号端口(如果你在win
  • Openssh服务的部署及安全优化

    千次阅读 2020-02-06 20:09:35
    ssh命令2.1、命令的用法:2.2、ssh的相关参数:3.Openssh服务的key认证3.1、Openssh认证方式3.2、Openssh KEY4.Openssh服务的安全优化4.1、sshd服务常用相关配置参数 实验环境: 本章节的学习我们一共会用到三台...
  • win10,openssh服务的安装、打开和关闭、连接和断开
  • • 1.1 Openssh功能介绍 Objectives • 1.2 ssh命令 • 1.3 Openssh服务的key认证 • 1.4 Openssh服务的安全优化
  • Openssh服务的key认证3.1 Openssh的认证方式3.2 ssh key认证生成非对称加密密钥3.3 sshd安全优化参数详解 1. Openssh介绍 OpenSSH 是 SSH (Secure SHell远程连接) 协议的免费开源软件 。 软件安装名称——Openssh-...
  • Linux中的Openssh服务器部署 一.实验环境的搭建 需要两台主机: client:westos.client.westos.com 172.25.254.10 server: westos.node1.westos.com 172.25.254.20 命令nm-connection-editor 设定IP地址 ...
  • 3 Openssh服务的key认证 4 Openssh服务的安全优化 1.Openssh功能概述 Openssh OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件 软件安装名称 • Openssh-server 配置文件 • /etc/ssh/sshd_conf 默认...
  • 系统配置信息如下:新安装的系统,防火墙暂时关闭1 .下载OpenSSH-Win32或OpenSSH-Win64 安装包,根据不同的系统选择不同的安装包,如果是64位系统,选择32位可以。下载地址:...
  • CentOS6.5下openssh服务

    2016-05-10 22:37:00
    OpenSSH是使用SSH通过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子项目。 00×1安装相关组件 openssh-server-5.3p1-94.el6.i...
  • Linux Openssh服务的安全优化策略 ssh SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换...
  • Openssh服务的部署及安全优化 1.1Openssh服务概述 SSH 为 Secure Shell 的缩写,是应用层的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 利用 SSH协议可以有效防止远程管理过程...
  • Linux基础_openssh服务

    2017-10-18 18:22:22
    ####1.openssh-server####   功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell   ####2.客户端连接方式#### ssh 远程主机用户@远程主机ip [root@desktop0 ~]# ssh root@172.25.0.11 The ...
  • win10自带OpenSSH服务这个大伙都知道,如何开启呢?接下来写一下开启步骤和常用命令。 右下角-【所有设置】-【应用】-【可选功能】-【添加功能】,找到OpenSSH 服务器 开启,此步骤需要联网。 开启后,找到服务...
  • OpenSSH 是 SSH 协议的开源实现。 OpenSSH 可进行远程登录、备份、通过 scp 或 sftp 进行远程文件传输等等。 SSH 最完美的确保两个网络和系统之间交换数据的机密性和完整性。其主要的优点是通过使用公共密钥加密进行...
  • 一.实验环境 client: localcast.localdomain 172.25.254.10 server: westcp.localdomain ...二.Openssh服务的基本信息 Openssh 作用: 在企业中的运维工作,不是1V1的运维 运维工程师可能要1Vn 在运维工程师对服...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,651
精华内容 7,860
关键字:

关闭openssh服务