ssh_损失函数 - CSDN
ssh 订阅
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。 展开全文
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
信息
简    称
SSH
作    用
提供安全性的协议
中文名
安全外壳协议
外文名
Secure Shell
ssh功能
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道" [1]  。
收起全文
  • SSH从入门到精通+项目实战

    万人学习 2018-10-22 21:38:05
    1.掌握Struts1.x的导包及配置;Struts1.x结合JSP实现视图层的应用;2.掌握Struts2.x的导包及配置;Struts2.x结合JSP实现视图层的应用;3.掌握Hibernate的导包及配置;Hibernate结合JSP实现...5.SSH整合的配置及应用
  • SSH是什么??

    千次阅读 2019-05-22 21:57:53
    首先,SSH是struts+spring+hibernate的一个集成框架,它不是一个框架,而是把多个框架紧密的结合在一起,用于构建灵活的多层Web应用程序。 然后详细说一下组成SSH的这三个框架: Struts 1.什么是Struts?? Struts...
    • 首先,SSH是struts+spring+hibernate的一个集成框架,它不是一个框架,而是把多个框架紧密的结合在一起,用于构建灵活的多层Web应用程序。
    • 然后详细说一下组成SSH的这三个框架:

    Struts
    1.什么是Struts??
    Struts基于MVC的框架,它是通过采用JavaServlet/JSP技术来实现基于Java EEWeb应用的MVC设计模式的应用框架,是MVC的一个具体实现。
    2.Struts的核心构成是什么??在这里插入图片描述

    Struts的核心同样也是MVC的核心,Struts是MVC的一个具体产品。
    

    a.Model
    由Action,ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数封装成为ActionForm对象,我们可以理解为实体,由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。
    b.View
    这一部分采用JSP和taglib来实现界面的渲染。
    c.Controller
    Controller是Struts的核心控制器,负责拦截用户请求,通过调用Model来实现处理用户请求的功能。
    3.为什么要使用Struts??
    使用Struts作为系统的整体基础架构,负责MVC的分离,将页面从业务逻辑分离出来,使用页面更加灵活多变,不会影响业务逻辑,简化了基于MVC的web应用程序的开发,使开发更高效。
    Hibernate
    1.什么是Hibernate??
    Hibernate是一个关系映射框架,它对JDBC进行了轻量级的封装,使我们使用面向对象的思想操作关系型数据库。
    2.Hibernate的核心组成??
    在这里插入图片描述
    3.为什么要使用Hibernate??
    a.Hibernate是JDBC的轻量级对象封装,使与关系型数据库打交道更轻松。
    b.对象化,使我们可以以面向对象的思想操作关系型数据库简化了Dao层的编码工作,使开发更对=对象话了。
    c.支持各种数据库,更换数据库简单,不需要改代码。
    Spring
    1.什么是Spring??
    是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
    2.Spring的核心组成??
    在这里插入图片描述
    a.IOC
    它不是一个技术,是一种设计模式,通过依赖注入的方式,由spring管理和控制对象之间的依赖关系,避免硬编码所造成的过度程序耦合。
    b.AOP
    通过预编译的方式和运行期动态代理实现程序功能的唯一维护的一种技术。
    c.容器
    能管理对象的生命周期,对象与对象之间的依赖关系就是容器。
    3.为什么要使用Spring??
    Spring的核心思想是IOC和AOP,spring使管理对象更加方便,极大的降低了组件之间的耦合度。
    总结
    SSH不仅实现了视图,控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,系统的灵活性更好,可复用性更高。

    展开全文
  • SSH 详解

    千次阅读 2018-08-08 15:47:01
    SSH服务详解   第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密...

    SSH服务详解

     

    第1章 SSH服务

    1.1 SSH服务协议说明

    SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。

    SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。

    在默认状态下,SSH服务主要提供两个服务功能:

    n 一是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。

    n 另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。

    1.1.1 ssh远程连接排错过程

    1.2 SSH加密技术说明

    简单的说,SSH加密技术就是将人类可以看得懂的数据,通过一些特殊的程序算法,把这些数据变成杂乱的无意义的信怠,然后,通过网络进行传输,而当到了目的地后,在通过对应的解密算法,把传过来的加密的数据信怠解密成加密前的可读的正常数据。因此,当数据在互联网上传输时即使被有心的黑客监听窃取了,也很难获取到真正黑要的数据。

    当前,网络上的数据包加密技术一般是通过所谓的一对公钥与私钥(PublickeyandPivatekey)组合成的密钥对进行加密与解密操作。如下图,A-Server要给B_Client传数据,首先会通过本地的公钥加密后再到发到网络上传输。而加密的数据到达B_Client端后,再经由B_Client本地的私钥将加密的数据解密出来。由于在intemet上传输过程中的数据是加密过的,所以,传输的数据内容一般来说是比较安全的。

     

    图1-1 ssh认证连接的过程

    1.2.2 ssh实现安全链接建立,利用要是和锁头

    1. 钥匙=私钥 锁头=公钥,私钥可以解密公钥

    2. 公钥可以再网络中传输,私钥再本地主机保存

    1.2.3 ssh加密算法

    v1漏洞: 密钥不更换

    v2 定期更换密钥

    利用Diffie-Hellman机制定期更新密钥

    1.3 ssh知识要点:

     ssh是安全的加密协议,用于远程链接linux服务器

     ssh 默认端口是22,安全协议版本sshv2,出来2之外还有1(有漏洞)

     ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务

     linux ssh 客户端包括ssh 远程链接命令,以及远程拷贝scp命令

    1.4 SSH服务软件详细说明

    1.4.1 什么是ssh服务

    SSH服务端是一个守护讲程 (daemon).他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务之。

    ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。

    ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。

    1.4.2 ssh软件安装

    客户端

    [root@nfs01 ~]# rpm -qf `which ssh`

    openssh-clients-5.3p1-122.el6.x86_64

    服务端软件

    [root@nfs01 ~]# rpm -qf `which sshd`

    openssh-server-5.3p1-122.el6.x86_64

    1.4.3 openssh-clinets 软件的主要内容:

    [root@nfs01 ~]# rpm -ql openssh-clients

    /etc/ssh/ssh_config         ---ssh客户端配置文件

    /usr/bin/.ssh.hmac

    /usr/bin/scp                  ---远程复制命令

    /usr/bin/sftp                 ---远程文件传输服务

    /usr/bin/slogin              ---远程登陆命令

    /usr/bin/ssh                  ---ssh远程登陆管理主机

    /usr/bin/ssh-add

    /usr/bin/ssh-agent

    /usr/bin/ssh-copy-id        ---ssh服务分发公钥命令

    /usr/bin/ssh-keyscan

    1.4.4 openssh-server 软件的主要内容

    [root@nfs01 ~]# rpm -ql openssh-server

    /etc/rc.d/init.d/sshd      #ssh服务启动脚本

    /etc/ssh/sshd_config       #ssh服务配置文件

    /etc/sysconfig/sshd        #ssh创建密钥有关

    /usr/sbin/.sshd.hmac       #ssh加密算法有关文件

    /usr/sbin/sshd             #ssh服务进程启动命令

    注意:使用sshd采用绝对路径进行启动

    [root@test ~]# sshd

    sshd re-exec requires execution with an absolute path

    1.5 ssh服务配置文件说明:

    01. 配置文件中所有注释信息,表示默认参数配置

    02. 配置文件中#空格 后面内容表示说明信息

                  #参数 表示配置参数信息

    03. 配置文件参数信息修改后,一旦变为注释,即还原为默认配置

    1.5.1 ssh服务的配置文件路径

    vim  /etc/ssh/sshd_config

    修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_config实现的。

    一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何配置。

    1.5.2 配置文件中常用配置说明

    [root@test ~]# vim /etc/ssh/sshd_config

    #       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm 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:/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 change a

    # default value.

     

    # OpenSSH is to specify options with their default value where

    # possible, but leave them commented.  Uncommented options change a

    # default value.

     

    Port 25113                   #端口

    ListenAddress 10.0.0.41   #监听地址(本地网卡地址),指定本地网卡那个网卡提供服务

    PermitRootLogin no         #是否允许root用户登陆

    #PermitEmptyPasswords no  #禁止空密码登陆

    #UseDNS no                   #不使用DNS

    GSSAPIAuthentication no    #API认证

    # 连接慢的解决

    #AddressFamily any         #指定监听ipv4地址,或是ipv6地址,或者所有都监听

    配置文件内容说明:

    井号(#)注释的参数信息为默认配置

    井号(#)后面有空格的为描述信息

    井号(#)后面没有空格的为参数信息

    另外:配置文件参数信息修改后,一旦变为注释,即还原为默认配置

    1.5.3 配置文件语法检查方法

    使用sshd -t 命令 对配置文件的语法进行检查

    正确

    [root@backup ~]# sshd -t /etc/ssh/sshd

    Extra argument /etc/ssh/sshd.

    语法格式有错误  ↓

    [root@test ~]# sshd -t /etc/ssh/sshd_config

    /etc/ssh/sshd_config: line 50: Bad configuration option: uthorizedKeysFile

    /etc/ssh/sshd_config: terminating, 1 bad configuration options

    1.5.4 ListenAddress 监听地址的说明

    图1-2 ssh服务监听参数说明

    如图所示,sshd_config配置文件中实际监听本地的网卡,并非网络地址

    监听地址只能监听本地网卡上配置的地址,监听的网卡可以对请求做出相应,为未监听的网卡不响应请求。

    1.5.5 SSH配置文件相关参数详细说明

    命令参数

    参数说明

    Port

    指定sshd进程监听的端口号,默认为22.可以使用多条指令监听多个端口.

    默认将在本机的所有网络接□上监听,但是可以通过ListenAddress指走只在某个特定的接口上监听.

    PermitEmptyPasswords

    是否允许密码为空的用户远程登录.默认为"no"

    PermitRootLogin

    是否允许root登录.可用值如下:"yes"(默认)表示允许."no"表示禁止.

    "without-password"表示禁止使用密码认证登录."forced-commands-only"表示只有在指走了command选项的情况下才允许使用公钥认证登录.同时其它认证方法全部被禁止.这个值常用于做远程备份之类的事情.

    1.多开一个窗口

    2.临时多部署一条连接方式

    3.给普通用户sudo权限

    UseDNS

    指定定sshd是否应该对远程主机名进行反向解折,以检查此主机名是否与其IP地址真实对应.默认值为"yes”.

    ListenAddress

    指定监听并提供服务相应的网卡地址信息

    1.5.6 快速修改配置参数

    sed -i '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no'  /etc/ssh/sshd_config

    1.6 ssh服务认证类型

    01. 基于口令认证方式

    02. 基于密钥认证方式

    1.6.1 基于密码的认证类型

    基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐号和口令(当然也要知道对应服务器的 IP及开放的 SSH端口,默认为22 ),就可以通过 ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的。

    演示了 SecureCR及ssh客户端连接,口令验证的测试。

    [root@test ~]# ssh 10.0.0.250

    The authenticity of host '10.0.0.250 (10.0.0.250)' can't be established.

    RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.

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

    Warning: Permanently added '10.0.0.250' (RSA) to the list of known hosts.

    root@10.0.0.250's password:    #需要输入密码

    Last login: Mon Oct 16 21:13:58 2017 from 10.0.0.1

    [root@test ~]#

    1.6.2 基于密钥的安全认证方法

    基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公用密钥(锁头)(Public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(钥匙)(Private key)放到SSH的客户端或对应的窖户端服务器上。

    私钥不能在网络中传输---私钥可以解密公钥

    公钥可以再网路中传输---公钥不能解密私钥

    此时,如果要想连接到这个带有公用密钥的SSH服务器,客户端SSH软件或者客户端服务器就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公用密钥加密"质询"(challenge)并把它发送给SSH客户端。

    1.7 基于秘钥登录配置

     

    1.7.1 环境准备

    作用

    主机名

    ip

    管理服务器

    m01

    10.0.0.61

    备份服务器

    backup

    10.0.0.41

    存储服务器

    nfs01

    10.0.0.31

    1.7.2 第一个里程碑: 在备份服务器上创建密钥对

    [root@backup ~]# 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:

    72:48:65:1d:25:69:e1:4c:ae:2b:6f:a5:aa:70:96:1e root@backup

    The key's randomart image is:

    +--[ RSA 2048]----+     #2048表示加密的位数为2048位

    |        o.==.      |

    |       o =+.       |

    |      .  .+        |

    |     . . .         |

    |      o S           |

    |     . o ..        |

    |  . E . .o         |

    |   = . oo           |

    |    o..o.           |

    +-----------------+

    参数说明:

          -t 指定创建密钥对的类型,可以创建的类型如下↓

    Specifies the type of key to create.  The possible values are “rsa1” for protocol version 1 and “dsa”, “ecdsa” or “rsa” for protocol version 2.

    查看创建出来的密钥对:

    [root@backup ssh]# ll ~/.ssh/

    total 12

    -rw------- 1 root root 1675 Oct 18 11:07 id_rsa         #私钥文件

    -rw-r--r-- 1 root root  393 Oct 18 11:07 id_rsa.pub    #公钥文件

    -rw-r--r-- 1 root root  784 Oct 11 16:27 known_hosts

    1.7.3 第二个里程:将公钥分发给存储服务器

    [root@backup ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.1.31 #用户使用当前用户

    root@172.16.1.31's password:   #注意:首次分发密钥需要输入对端服务器的用户密码

    Now try logging into the machine, with "ssh '172.16.1.31'", and check in:

     

      .ssh/authorized_keys    #公钥分发到对端后进行改名

     

    to make sure we haven't added extra keys that you weren't expecting.

    说明:

       通过 man 手册找到密钥分发的命令格式。

       -i 参数指定 公钥文件的存放位置

    [use@]表示使用的用户,默认使用当前登陆的用户

    [root@backup ~]# man ssh-copy-id

    Formatting page, please wait...

    SSH-COPY-ID(1)                                                  SSH-COPY-ID(1)

    NAME

           ssh-copy-id  -  install  your  public  key in a remote machine's autho-

           rized_keys

    SYNOPSIS

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

    1.7.4 第三个里程碑:进行登录测试

    [root@backup ~]# ssh nfs01

    Last login: Wed Oct 18 10:13:17 2017 from 10.0.0.1

    [root@nfs01 ~]#

    1.8 telnet服务简介

    1.8.1 部署telnet服务

    第一个里程碑:安装telnet服务软件

    [root@test ~]# yum install telnet telnet-server -y

    第二个里程碑:设置开机自启动

    [root@test ~]# vim /etc/xinetd.d/telnet

    修改xinetd下的配置文件,从而管理telnet服务

    [root@test ~]# vim /etc/xinetd.d/telnet
    # default: on
    # description: The telnet server serves telnet sessions; it uses \
    #       unencrypted username/password pairs for authentication.
    service telnet
    {
            flags           = REUSE
            socket_type     = stream
            wait            = no
            user            = root
            server          = /usr/sbin/in.telnetd
            log_on_failure += USERID
            disable         = no
    }

    第三个里程碑: 启动xinetd 服务,让telnet能够开机自启动

    [root@test ~]# /etc/init.d/xinetd start

    Starting xinetd:                                           [  OK  ]

    1.8.2 客户端测试

    说明:

        telnet服务默认不支持root用户直接登陆。

    [C:\]$ telnet 10.0.0.250

    Connecting to 10.0.0.250:23...

    Connection established.

    To escape to local shell, press 'Ctrl+Alt+]'.

    CentOS release 6.9 (Final)

    Kernel 2.6.32-696.el6.x86_64 on an x86_64

    test login: oldboy

    Password:

    Last login: Wed Oct 18 09:41:19 from 10.0.0.1

    [oldboy@test ~]$

    1.8.3 ssh与telnet区别(对比示意图)

    01.ssh是加密的服务协议,telnet服务是非加密的

    02.ssh服务默认支持root用户登陆,telnet用户默认不支持root用户登陆

     

    1.9 进行免密码scp传输测试

    [root@backup ~]# scp -rp  /etc/hosts nfs01:/tmp/

    hosts                                         100%  357     0.4KB/s   00:00  

    1.9.1 scp的基本语法使用:

    scp - secure copy (remote file copy program)

    每次都是全量拷贝,增量拷贝rsync

    推:PUSH

    scp -P22 -rp /tmp/oldboy oldboy@10.0.0.143:/tmp

    参数说明:

    <- -P(大写,注意和ssh命令的不同)接端口,默认22端口时可以省略-P22;

    <- -r递归,表示拷贝目录;

    <- -p表示在拷贝前后保持文件或目录属性;

    <- -l limit 限制速度。

    <- /tmp/oldboy为本地的目录。“@”前为用户名,“@”后为要连接的服务器的IP。IP后的:/tmp目录,为远端的目标目录。

    说明:

    以上命令作用是把本地/tmp/oldboy拷贝到远端服务器10.0.0.143的/tmp目录;

    拉:PULL

    scp -P22 -rp root@10.0.0.7:/tmp/oldboy /opt/

    说明:

    还可以把远端目录抓到本地

    结论:

    scp为远程拷贝文件或目录的命令,更多用法,请man scp;

    拷贝权限为连接的用户对应的权限。

    1.10 使用sftp进行基于密钥的文件传输

    1.10.1 sftp简介

    sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分.

    1.10.2 sftp命令说明

    [root@m01 ~]# sftp -oPort=22  172.16.1.31

    Connecting to 172.16.1.31...

    sftp>

    说明:

       -o        连接的时候指定选项

    Port=22  端口指定为22、

    1.10.3 sftp使用参数说明

    操作远程服务器

    ls    显示远端主机的列表

    cd   切换远程的工作目录

    pwd  显示远程的工作目录

    操作本地服务器

    lls   显示本地主机的列表

    lcd   切换本地的工作目录

    lpwd  查看本地目录信息

    上传下载文件参数

    get   --- 表示从远程服务器下载数据(单个文件)

    mget  --- 表示下载多个文件

    put   --- 表示从本地服务器上传数据(单个文件)

    mput  --- 表示上传多个文件

    查看帮助的方式:

    sftp> help       显示帮助信息

    1.11 ssh相关重点知识总结

     ssh协议:sshd---远程连接(sshd),sftp

     为加密的远程连接协议,相关软件有openssh.openssh---https。

     默认端口22

     协议版本1X和2.x,2.x更安全。了解SSH协议原理(ssh连接过程X

     服务端ssh远程连接服务,sftp服务。sshd守护进程,开机要自启动。

     ssh客户端包含ssh,scp,sftp命令。

     ssh安全验证方式:口令和密钥,这两种都是基于口令的,SSH密钥登录的原理。

     ssh服务安全优化,修改默认端口22,禁止root远程连接,禁止dns,SSH只监听内网IP

     ssh密钥对,公钥(publickey)在服务器端,比喻就是锁头,私钥(privatekey)在客户端,比喻就是钥匙。

     

     

     

    第2章 重点知识补充

    2.1 一个服务始终无法启动

    01.服务的查日志/系统日志

    02.检查服务端口有没有冲突

    2.2 【企业面试题】:给你一个端口如何命令行查出对应的服务是什么?

    测试服务端口有没有开启

    ss -lntup|grep 22

    netstat -lntup|grep -w "22"

    lsof -i:22

    grep  "\b22/\b" /etc/services

    nmap -p 22 172.16.1.41

    nc 172.16.1.41 22

    telnet 172.16.1.41 22

    2.2.1 【企业面试题】根据进程名查看对应的端口是什么?

    netstat/ss –lntup|grep 进程或服务名字

    2.3 ssh入侵案例说明

    被入侵实例http://phenixikki.blog.51cto.com/7572938/1546669

    IP何防止SSH登录入侵小结:

    1、用密钥登录,不用密码登陆

    2、牤牛阵法:解决SSH安全问题

    a.防火墙封闭SSH,指定源IP限制(局域网、信任公网)

    b.开启 SSH 只监听本地内网 IP ( ListenAddress 172.16.1.61 )

    3、尽量不给服务器外网ip

    4、最小化(软件安装-授权)

    5、给系统的重要文件或命令做一个指纹

    6、给他锁上 chattr +i +a

    第3章 扩展问题

    3.1 服务端端口号变化了,如何基于秘钥连接

    3.1.1 环境准备

    实验环境:

    [root@test ~]# cat /etc/redhat-release

    CentOS release 6.9 (Final)

    将一台服务器的ssh服务端口修改为63389

    [root@test ~]# netstat -lntup|grep sshd

    tcp        0      0 0.0.0.0:63389  0.0.0.0:*         LISTEN      5083/sshd          

    tcp        0      0 :::63389         :::*              LISTEN      5083/sshd   

    3.1.2 通过另外一台服务器创建并分发密钥

    第一个里程碑: 现创建密钥使用 ssh-keygen

    [root@backup ~]# 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:

    72:48:65:1d:25:69:e1:4c:ae:2b:6f:a5:aa:70:96:1e root@backup

    The key's randomart image is:

    +--[ RSA 2048]----+     #2048表示加密的位数为2048位

    |        o.==.      |

    |       o =+.       |

    |      .  .+        |

    |     . . .         |

    |      o S           |

    |     . o ..        |

    |  . E . .o         |

    |   = . oo           |

    |    o..o.           |

    +-----------------+

    第二个里程碑:分发密钥,注意ssh的端口

    [root@backup ~]# ssh-copy-id  -i ~/.ssh/id_rsa.pub "-p63389 172.16.1.250"

    The authenticity of host '[172.16.1.250]:63389 ([172.16.1.250]:63389)' can't be established.

    RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.

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

    Warning: Permanently added '[172.16.1.250]:63389' (RSA) to the list of known hosts.

    root@172.16.1.250's password:

    Now try logging into the machine, with "ssh '-p63389 172.16.1.250'", and check in:

     

      .ssh/authorized_keys   #分发到对端服务器后进行改名

     

    to make sure we haven't added extra keys that you weren't expecting.

    说明:

       通过 man 手册找到密钥分发的命令格式。

       -i 参数指定 公钥文件的存放位置

    [use@]表示使用的用户,默认使用当前登陆的用户

    -p 指定端口,主要要在双引号之间(通过cat `which ssh-copy-id` 命令脚本内容得知)

    [root@backup ~]# man ssh-copy-id

    Formatting page, please wait...

    SSH-COPY-ID(1)                                                  SSH-COPY-ID(1)

    NAME

           ssh-copy-id  -  install  your  public  key in a remote machine's autho-

           rized_keys

    SYNOPSIS

    第三个里程碑: 测试密钥登陆

    [root@backup ~]# ssh 172.16.1.250 -p 63389

    Last login: Wed Oct 18 15:42:05 2017 from 10.0.0.41

    [root@test ~]#

    3.2 如何实现自动创建秘钥对,同时分发公钥(编写脚本实现)

    脚本内容:

    [root@m01 ~]# vim /server/scripts/piliang_fenfa.sh
      1 #!/bin/bash
      2
      3 #make key
      4 \rm -f /root/.ssh/id_dsa
      5 ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" -q
      6
      7 #fengfagongyao
      8 for ip in 8 31 41
      9 do
     10 echo ====fenfa key to host 172.16.1.$ip====
     11 sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@172.16.1.$ip"
     12 echo ===============fenfa end==============
     13 echo ""
     14 done

    脚本说明:

       ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" -q

       创建密钥,-f指定存放位置,-P 密钥加密的密码  -q 减少信息输出

    sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@172.16.1.$ip"

       这里需要安装一个软件 yum install sshpass -y 用来提供中户密码

    ssh-copy-id 命令来分发密钥 -i 指定密钥本地存放的路径

    -o StrictHostKeyChecking=no 在登陆其他服务器是不选择yes/no

    for ip in 8 31 41

       这里使用for循环来对ip地址进行变化。

    展开全文
  • SSH简介及两种远程登录的方法

    万次阅读 多人点赞 2018-11-12 16:33:45
    SSH的安全机制 SSH的安装 启动服务器的SSH服务 SSH两种级别的远程登录 SSH的高级应用 Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为...

    目录

    SSH的安全机制

    SSH的安装

    启动服务器的SSH服务

    SSH两种级别的远程登录

    SSH的高级应用


    Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

    SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。

    SSH的安全机制

    SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。

    传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

    但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

    第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

    第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

    SSH的安装

    SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

    dpkg -l | grep ssh

    如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

    sudo apt-get install openssh-client 
    sudo apt-get install openssh-server 

    启动服务器的SSH服务

    首先确认ssh-server是否已经启动了

    ps -e | grep ssh

    如图,sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

    sudo /etc/init.d/ssh start 

    停止和重启ssh服务的命令如下:

    sudo /etc/init.d/ssh stop  #server停止ssh服务 
    sudo /etc/init.d/ssh restart  #server重启ssh服务
    

    接下来就可以进行使用客户机远程登录服务器了~

    SSH两种级别的远程登录

    一、口令登录

    口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址  eg:

    ssh ldz@192.168.0.1

    如果需要调用图形界面程序可以使用 -X 选项

    ssh -X ldz@192.168.0.1

    如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。

    ssh 192.168.0.1

    还要说明的是,SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口:

    ssh -p 1234 ldz@192.168.0.1

    客户机必须要知道服务器的ip地址。可以在服务器端电脑上利用 ifconfig 命令查看该机的ip地址:

    如果是第一次登录远程主机,系统会给出下面提示:

    意思是,该远程主机的真实性无法确定,其公钥指纹为 SHA256:FFobshqrGOachj7Xp4LsJ9+xkNBlyyOe8ZIPl7K+qQI,确定想要继续连接吗?

    输入yes即可。这时系统会提示远程主机被添加到已知主机列表。

     

    然后会要求我们输入远程主机的密码,输入的密码正确就可以成功登录了。命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行。

    我们可以通过 Ctrl+D 或者 exit 命令退出远程登录

     

    二、公钥登录

    每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

    1、在本机生成密钥对

    使用ssh-keygen命令生成密钥对:

    ssh-keygen -t rsa   #-t表示类型选项,这里采用rsa加密算法

    然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa公钥文件 id_rsa.pub

    2、将公钥复制到远程主机中

    使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

    ssh-copy-id ldz@192.168.0.1

    经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

    cheers~

     

    SSH的高级应用

    使用远程主机不中断的跑程序

    当我们利用ssh在远程主机上跑程序的时候,只要关闭了终端就会中断ssh连接,然后远程主机上正在跑的程序或者服务就会自动停止运行。我们可以利用 nohup + 需要运行的程序 使运行的程序在切断ssh连接的时候仍然能够继续在远程主机中运行。nohup即no hang up(不挂起)。

    除此之外还有很多远程操作应用,包括 数据传输、端口操作(将不加密的网络连接绑定到ssh端口实现间接加密) 等等,可以参考柚子皮大神的博客:https://blog.csdn.net/pipisorry/article/details/52269785

     

     

     

    展开全文
  • SSH实战-传统三大框架精讲

    万人学习 2018-10-22 21:38:05
    传统的SSH教学,存在着很大的问题。尤其是Spring整合Struts2道理何在? Spring整合Hibernate是好是坏? 本教程采用完全案例教学模式,通过深刻剖析,提出了与传统模式完全不同的更佳解决方案!
  • #PS:要转载请注明出处,本人版权所有#PS:这个只是 《 我自己 》理解,如果和你的 #原则相冲突,请谅解,勿喷最近由于特殊原因,要在字符终端中的bash运行一个带GUI的PyQT程序。 报了一个错误为:QXcbConnection...

    #PS:要转载请注明出处,本人版权所有

    #PS:这个只是 《 我自己 》理解,如果和你的

    #原则相冲突,请谅解,勿喷

    最近由于特殊原因,要在字符终端中的bash运行一个带GUI的PyQT程序。
    报了一个错误为:QXcbConnection: Could not connect to display

    我在GUI桌面中的bash能够执行此PyQt程序,但是在字符终端中的bash执行就会报错

    想到是由于无图形界面的原因,在网上找了一下午,想实现一个功能就是在tty1中指定tty7来运行这个程序,但是没有找到解决办法,最后发现一个环境变量可以很Ok的解决此问题。

    ###此类问题可以归结于:在非图形终端执行了一个GUI程序,导致X11Server在此终端的环境下无法显示图形,需要手动指定X11Server把图形显示到其他的带图形界面的终端。

    DISPLAY 变量
    eg:DISPLAY=hostip:NumA.NumB
    (注意当显示到本机的其他tty时,hostip 为空,一般情况下NumA,NumB为0)
    eg:DISPLAY=:0.0
    

    2019/03/25更新

    有意栽花花不发,无心插柳柳成荫。

    原文的本意只是简单记录了我的一个试验成功的实验,没想到那么多人关注这个。
    原试验内容:你按ctrl+atl+F1进入tty1,然后你在tty1中执行带GUI功能的程序,一般就会报相应的显示错误。这个错误的原因就是DISPLAY变量没有设置的原因。你可以通过:echo ${DISPLAY}

    简单来说,当你在终端执行一个带GUI功能的程序的时候,如果DISPLAY变量没有定义,就会报相应的错误。至少对于Xserver的系统是这样的。

    DISPLAY 简单说明

    我就是简单翻译此网页的某些我们关注的段落(如有侵权,联系我立即删除):https://gerardnico.com/ssh/x11/display

    The magic word in the X window system is DISPLAY.
    在X视窗系统中,这个比较神奇的SHELL变量是DISPLAY。
    
    The X display server install itself normally as display number 0 on your local machine. 
    在你的本地机器上,X显示服务程序在安装的时候,会把自己设置为“显示0”。
    
    A display consists (simplified) of:
    a keyboard,
    a mouse
    and a screen.
    一个“显示”一般由以下内容组成:
    一个键盘
    一个鼠标
    一个显示器。
    
    A display is managed by a server program, known as an X server. The server serves displaying capabilities to other programs that connect to it.
    一个“显示”被一个叫做X服务的服务程序管理。这个服务为连接它的其他程序提供“显示“服务。
    
    The SSH protocol has the ability to securely forward X Window System applications over an encrypted SSH connection, so that you can run an application on the SSH server machine and have it put its windows up on your local machine without sending any X network traffic in the clear. $DISPLAY on the remote machine should point to localhost. SSH does the forwarding.
    SSH协议通过一个加密的SSH连接,能够安全地传输X桌面系统程,因此,在没有发送任何X网络传输的时候,你可以毫无阻碍地在SSH所在的服务器运行你的程序并让其界面在你本地电脑启动起来。DISPLAY变量必须在远程机器上设置为localhost,SSH配置为启用X11转发。
    
    The value of the display environment variable is:
    这个DISPLAY环境变量的值是:
    
    hostname:D.S
    主机名:"显示号".“屏幕号”
    
    where:
    说明:
    
    hostname is the name of the computer where the X server runs. An omitted hostname means the localhost.
    一个运行了X服务的计算机的名字是主机名。一个缺省的主机名是localhost。
    
    D is a sequence number (usually 0). It can be varied if there are multiple displays connected to one computer.
    D 是一个通常为0的序列号。它可以区分这个有多少个“显示”连接到了这个计算机。
    
    S is the screen number. A display can actually have multiple screens. Usually there's only one screen though where 0 is the default.
    S 是一个屏幕号。一个“显示“能够有多个屏幕。通常,一个计算机有一个屏幕,其序号默认是0。
    
    hostname:D.S means screen S on display D of host hostname; the X server for this display is listening at TCP port 6000+D.
    hostname:D.S这种格式的定义是:“显示D”显示到一个主机为hostname的屏幕上。X服务对于这个“显示”是通过监听TCP端口6000+D 这个端口号实现的。(如:localhost:4.0,  对于这个显示实例,Xserver监听的就是6004这个端口.)
    
    host/unix:D.S means screen S on display D of host host; the X server for this display is listening at UNIX domain socket /tmp/.X11-unix/XD (so it's only reachable from host).
    host/unix:D.S这种格式的定义是:“显示D”显示到一个主机地址为host的屏幕上。X服务对于这个“显示”是通过监听UNIX本地socket实现的。因此host必须是可以连接的。
    
    :D.S is equivalent to host/unix:D.S, where host is the local hostname.
    :D.S 和host/unix:D.S是一样的。这里是一种简写方式,host是本地的主机名,如localhost.
    

    以上翻译可能不太准确,我翻译很屁的。

    2019/09/26更新 ,补充xhost命令

    今天再ubuntu 18.04上,切换root,运行/snap/bin/gnome-system-monitor程序,显示如下:
    在这里插入图片描述
    我首先说明,这里我已经设置了DISPLAY环境变量,但是发现我被拒绝连接了。于是查了查,和xhost命令有关,xhost简单来说就是控制其他用户或者其他ip是否可以访问当前用户启动的xserver。
    于是我解除其他用户访问限制:
    xhost +
    在这里插入图片描述
    然后再次root重新运行,可以正常打开了。
    在这里插入图片描述

    2020/03/13更新 用xshell,putty等ssh链接工具链接时,显示图形界面

    在这里插入图片描述
    在这里插入图片描述
    勾选后,你再次进入shell(重连ssh),echo $DISPLAY 会发现变量已经被定义了。下面用xshell为例。

    在这里插入图片描述

    如果没有DISPLAY变量还是空,则配置sshd_config文件。如下图打开x11转发:
    /etc/ssh/sshd_config文件 如果画框为no改为yes
    在这里插入图片描述
    sudo service ssh restart 重启sshd服务
    再次通过xshell连接linux目标。就可得到如下的图:(如未得到,多检查,多学习)
    在这里插入图片描述
    图中画框的tcp就是转发出来的x11链接,你如果再开一个ssh链接,你会发现DISPLAY变量又变了:
    在这里插入图片描述
    这个时候你在xshell终端中输入任何一个gui 程序,会弹出如下框,安装好后,就可以正常显示GUI界面了。

    在这里插入图片描述
    xmanager是收钱的,我这里用另外一个MobaXterm但是道理都是一样的。
    在这里插入图片描述
    其实这里的更新内容,在我翻译的那段文字里面有,只是不知道多少人看了!!!!哎!!!

    总结

    一句话来说,对于桌面是由x服务的图形系统来说,只有设置了DISPLAY变量,才能够让GUI程序正常的显示起来。
    对于我们经常进入的桌面,然后开一个terminal,你会发现,DISPLAY已经被自动设置了。所以才没有问题。而对于我们进的不是桌面terminal来说,DISPLAY变量是没有设置的。需要我们手动设置,GUI程序才能够正常启动。

    2019/09/26更新,如果无法正常显示, xserver安全访问系统可能会阻止你访问xserver,当设置了正确的DISPLAY变量后无法显示,请尝试xhost 命令解除访问控制。

    #PS:请尊重原创,不喜勿喷

    #PS:要转载请注明出处,本人版权所有.

    有问题请留言,看到后我会第一时间回复

    展开全文
  • Ubuntu下使用SSH可视化

    万次阅读 2019-09-25 19:12:23
    有些时候,命令行界面并不能满足我们的需要,我们仍旧需要GUI的支持,就比如……JMeter 有很多方法能够实现远程...打开/etc/ssh/sshd_config(注意是sshd) 找到X11Forwarding,去掉注释“#”,并且参数改为yes
  • SSH配置文件总结

    2018-07-25 22:41:14
    1、所用SSH版本 struts2-2.3.24——&gt;struts2-2.5.16 hibernate-4.3.10.Final——&gt;hibernate-release-5.3.0.Final spring-core-4.1.6.RELEASE——&gt;spring-core-5.0.6 mysql-connector-java-...
  • ssh 远程链接显示界面

    千次阅读 2018-05-18 10:40:01
    ssh远程调试了很久的机器人turtlebot,界面不能显示的问题一直都是跳过没有理睬,今天在网络上搜一下,居然有解决办法,震惊! 服务器端 A端 机器人端 B端 主要的流程如下: A端设置: 1. sudo vim /etc/ssh/...
  • 远端服务器可以显示窗口画面,通过ssh连接到远端,执行图形应用时常常报xdisplay错误,这是因为本地shell无法显示图像导致,此时可以通过如下命令,将图像在远端显示: export DISPLAY=:0
  • linux下安装SSH服务及使用详解

    万次阅读 2019-04-28 10:40:41
    linux下安装SSH服务及使用详解 ssh服务介绍说明 secure shell protocol简称SSH,是由IETF网络工作小组(network working group) 制定,在进行数据传输之前,SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据...
  • 什么是SSH 以及常见的ssh 功能

    万次阅读 多人点赞 2018-06-28 18:02:54
    什么是SSH?简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候...
  • ssh用法及命令

    万次阅读 多人点赞 2019-08-13 15:10:18
    什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的...
  • ssh详解

    千次阅读 2018-09-19 13:15:07
    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机。 另外,作者翻译了ssh客户端命令的man文档,如...
  • 如何使用SSH登录远程服务器

    万次阅读 2016-09-05 19:54:27
    这时候就需要SSH了。搬瓦工自带SSH服务端,因此这里只需要配置客户端就可以了。默认配置Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH...
  • ssh-keygen的使用方法

    万次阅读 2011-04-21 15:30:00
    采用了数字签名RSA或者DSA来完成这个操作2、模型分析假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机; ...2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_r
  • linux安装ssh和开启 ssh服务

    万次阅读 多人点赞 2017-08-08 20:37:33
    1.查看ssh服务的状态 输入以下命令: sudo service sshd status 如果出现 Loaded: error (Reason: No such file or directory) 提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。 如果...
  • ubuntu开启SSH服务远程登录

    万次阅读 多人点赞 2017-02-10 21:18:48
    ssh–secure shell,提供安全的远程登录。从事嵌入式开发搭建linux开发环境中,ssh的服务的安装是其中必不可少的一步。ssh方便一个开发小组中人员登录一台服务器,从事代码的编写、编译、运行。方便代码的共享及管理...
  • SSH远程登录和SSH免密码登录

    万次阅读 多人点赞 2018-09-07 12:12:00
    SSH是一种通讯协议,可以实现远程安全登录。可以通过如putty、MobaXterm等工具通过ssh安全登录到虚拟机进行操作。 Openssh:ssh远程安全登录的开源实现(软件)。 一、SSH远程登录的原理(基于口令) 1、客户端向...
  • ssh-keygen生成git ssh密钥

    万次阅读 2017-02-07 18:21:02
    SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell。SSH登录是需要用户名和密码的,要实现无...
1 2 3 4 5 ... 20
收藏数 543,368
精华内容 217,347
关键字:

ssh