精华内容
下载资源
问答
  • SSH协议

    2020-07-12 16:34:44
    SSH协议是什么 该方式与前面HTTP方式相比,只影响GitHub对于用户的身份的鉴权方式,对于git的具体操作(如提交本地、添加注释、提交远程等等操作)没有任何影响 SSH协议创建步骤 1. 生成客户端公私钥文件 ...

    SSH协议是什么

    • 该方式与前面HTTP方式相比,只影响GitHub对于用户的身份的鉴权方式,对于git的具体操作(如提交本地、添加注释、提交远程等等操作)没有任何影响

    SSH协议创建步骤

    1. 生成客户端公私钥文件

    • 实际操作

    创建SSH: ssh-keygen -t rsa -C 后面加上GitHub用户名邮箱

    SSH 查看:

    1.用git打命令cd ~

    2.用git打命令ls -a

    3.如果有删除 用git打命令rm -rf .ssh/

    2. 将公钥上传到GitHub上

    • 本电脑SSH公钥查找

    1. 点击此电脑

    2. 再点击C盘

    3. 然后再点击用户

    4. 然后再点击当前用户

    5. 然后再点击.ssh

    6. 然后找id_rsa.pub用记事本打开

    7. 然后再全选后复制

    • 实际操作

    1. 进入GitHub代码托管平台

    2. 点击个人设置

    3. 再点击settings

    4. 里面有SSH 进行添加即可

    5. 再点击New SSH

    6. 下次克隆就能用SSH地址

    展开全文
  • ssh协议

    千次阅读 2019-01-27 11:23:53
    SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议。SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输...

    SSH介绍

    SSH全称是Secure Shell,SSH协议是基于应用层的协议,为远程登录会话和其他网络服务提供安全性的协议。SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输数据。而SSH在传输过程中的数据是加密的,安全性更高。

    工作原理

    SSH协议是基于非对称加密方法的,服务器和客户端都会生成自己的公钥和私钥。
    (1) 服务器建立公钥。若远程服务器是新系统,会在/etc/ssh目录下生成一个名为ssh_host_ecdsa_key.pub的公钥,同时生成一个名为ssh_host_ecdsa_key的私钥,这一对就是远程服务器的公钥与私钥。之后每回启动sshd服务的时候,系统会自动在此路径下查找公钥。
    (2) 客户端请求连接。linux或者mac系统可以直接通过自带的shell连接,指令为ssh user@host,如果客户端和服务器是相同的用户,则可以省去user,直接使用ssh host。
    (3) 服务器发送公钥给客户端。服务器接到请求后,把公钥传给客户端使用。
    (4) 客户端记录服务器公钥并计算自己的公私钥。客户端将服务器传来的公钥记录在~/.ssh/known_hosts中,若是已经记录有该服务器公钥,则比对是否一致,一致后就计算客户端自己的公私钥。
    (5) 客户端发送自己的公钥给服务器。客户端将自己的公钥发送给服务器,这样服务器端就有客户端公钥+服务器自己私钥,客户端就有服务器公钥+客户端自己私钥,组成了非对称加密系统。
    (6) 开始双向加解密。服务器发送数据:用客户端公钥加密,客户端收到数据后用自己私钥解密。客户端发送数据:用服务器公钥加密,服务器收到数据后用自己私钥解密。

    工作过程

    (1) 版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
    (2) 密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
    (3) 认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
    (4) 会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
    (5) 交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互

    认证方式

    认证方式主要有两种:密码认证和公钥认证。
    密码(口令)认证:输入账号密码(口令)进行认证。
    公钥认证:需要客户端生成一对公私钥,使用ssh-keygen生成,保存在~/.ssh路径下,然后使用指令ssh-copy-id user@host传到服务器端,以后再登录认证的时候,客户端自动发送公钥给服务器,服务对比一致则通过认证,不要繁琐地输入密码了。

    缺陷

    这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
    可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的"中间人攻击"(Man-in-the-middle attack)。

    参考

    《什么是SSH 以及常见的ssh 功能》https://blog.csdn.net/u013452337/article/details/80847113
    《SSH协议(1)-工作原理及过程》https://blog.csdn.net/cjx529377/article/details/77659199

    展开全文
  • SSH 协议

    2017-12-28 21:32:56
    如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。 最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,...

    一、什么是SSH?

    简单说,SSH是一种网络协议,用于计算机之间的加密登录。
    如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
    最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
    需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。
    此外,本文只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH,会用到另一种软件PuTTY,这需要另文介绍。

    二、最基本的用法

    SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。
    sshuser@host ssh host
    SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。
    $ ssh -p 2222 user@host
    上面这条命令表示,ssh直接连接远程主机的2222端口。

    三、中间人攻击

    SSH之所以能够保证安全,原因在于它采用了公钥加密。
    整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
    这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
    可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的”中间人攻击”(Man-in-the-middle attack)。
    SSH协议是如何应对的呢?

    四、口令登录

    如果你是第一次登录对方主机,系统会出现下面的提示:
    $ ssh user@host
    The authenticity of host ‘host (12.18.429.21)’ can’t be established.
    RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
    Are you sure you want to continue connecting (yes/no)?
    这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?
    所谓”公钥指纹”,是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比较,就容易多了。
    很自然的一个问题就是,用户怎么知道远程主机的公钥指纹应该是多少?回答是没有好办法,远程主机必须在自己的网站上贴出公钥指纹,以便用户自行核对。
    假定经过风险衡量以后,用户决定接受这个远程主机的公钥。
    Are you sure you want to continue connecting (yes/no)? ye
    系统会出现一句提示,表示host主机已经得到认可。
    Warning: Permanently added ‘host,12.18.429.21’ (RSA) to the list of known hosts.
    然后,会要求输入密码。
    Password: (enter password)
    如果密码正确,就可以登录了。

    当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
    每个SSH用户都有自己的known_hosts文件,此外系统也有一个这样的文件,通常是/etc/ssh/ssh_known_hosts,保存一些对所有用户都可信赖的远程主机的公钥。
    五、公钥登录
    使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。
    所谓”公钥登录”,原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个:
    $ ssh-keyge
    运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

    运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。

    这时再输入下面的命令,将公钥传送到远程主机host上面:
    $ ssh-copy-id user@host
    好了,从此你再登录,就不需要输入密码了。
    如果还是不行,就打开远程主机的/etc/ssh/sshd_config这个文件,检查下面几行前面”#”注释是否取掉。
    RSAAuthentication yes   PubkeyAuthentication yes   AuthorizedKeysFile .ssh/authorized_key
    然后,重启远程主机的ssh服务。
    // ubuntu系统   service ssh restart
    // debian系统   /etc/init.d/ssh restart

    六、authorized_keys文件

    远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。 这里不使用上面的ssh-copy-id命令,改用下面的命令,解释公钥的保存过程:

    $ ssh user@host ‘mkdir -p .ssh && cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa.pu
    这条命令由多个语句组成,依次分解开来看:

    (1)”$ ssh user@host”,表示登录远程主机;
    (2)单引号中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程shell上执行的命令:

    (3)”$ mkdir -p .ssh”的作用是,如果用户主目录中的.ssh目录不存在,就创建一个;(4)’cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾。
    写入authorized_keys文件后,公钥登录的设置就完成了。

    展开全文
  • SSH协议及SSH工具

    2019-07-09 18:59:17
    SSH协议: SSH 为 Secure SHell 的缩写,SSH是Secure SHell Protocol 安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议...

    SSH协议:

    SSH 为 Secure SHell 的缩写,SSH是Secure SHell Protocol 安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

    1.安全性比较

    SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。

    传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。 

    通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。 

    2.SSH按协议主要分为三部分

    传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

    用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。SSH-USERAUTH 也需要知道低层协议是否提供保密性保护

    连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

    一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发( “隧道技术”)专有

    3.利用SSH连接过程

          SSH分为两部分:服务器端部分和客户端部分。

          服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
          客户端包含ssh程序以及像scp (远程拷贝)、slogin (远程登陆)、sftp (安全文件传输)等其他的应用程序。
          他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。

          这只是SSH两端连接的大致过程,SSH 1.x和 SSH 2.x在连接协议上还有着一些差异。

         SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd 运行起来并在默认的22端口进行监听(你可以用# ps -waux | grep ssh来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,孩子进程进行这次的连接处理。
          但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序。

    SSH工具:

    虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合是Unix系统,但是Windows操作系统也能有限度地使用SSH。

    Windows下连接Linux的ssh工具:

    通常Linux都是服务器系统,而我们办公用的电脑都是Windows系统,而很多时候要通过ssh连接到Linux服务器上进行一些操作,因此就需要用到连接工具。一般都是使用SSH工具,我们来看看具体有哪些SSH工具。(举常用的两例)

    1.xshell

    xshell也是一款商业级别的ssh连接工具,平时自己使用的时候可以下载评估版本,只要不在公司里使用即可。它的界面图标如下图所示:

    (1)第一次双击软件图标,打开后,需要先点击软件界面左上角的文件,点击新建,然后才能出来主机信息配置界面。输入主机别名、ip地址和端口,然后点击确定。就会弹到服务器列表,在列表中选择你刚才添加的服务器名称,然后点击连接。就开始自动连接对应的服务器。

        --》     --》

    (2)输入用户名,点击确定,再输入密码。认证成功后就进入到了服务器的shell界面。显示你上一次的登录时间以及IP地址。

    2.FinalShell(良心国产,免费的)

    详细介绍:https://www.cnblogs.com/judewu/p/9430535.html

    使用步骤:

    1.图标

    2.点击文件夹,选择SSH(Linux)

    3.完善连接信息

    4.双击连接的主机

    5.连接成功

     

     

    展开全文
  • SSH协议总结

    2019-11-19 14:21:34
    一.SSH协议介绍 SSH:安全外壳协议。SSH 为Secure Shell的缩写,它是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中...
  • ssh协议详解

    2020-12-10 11:27:40
    ssh协议详解 ssh协议的概念 ssh是一种安全通道协议,主要用来实现字符界面的远程登陆,远程复制等功能。 ssh默认使用22号端口,采用密文的形式在网络中传输数据,它将客户端与服务端之间的消息通过加密保护起来,...
  • SSH协议分析

    2019-11-24 19:49:42
    SSH (Security Shell)为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议SSH,为建立在应用层基础上的安全协议。这里对ssh协议进行了抓包分析
  • SSH协议介绍

    2019-09-27 13:51:59
    SSH协议介绍 SSH概念介绍 SSH是一种网络协议,我们常说的 ssh 一般指其实现,即 OpenSSH,在 shell 中,也就是 ssh 命令。 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不...
  • SSH协议基础学习

    2020-01-20 21:01:04
    需要借助Xshell来管理阿里云服务器,SSH协议又是Xshell实现的基础,因此了解一下SSH协议。 SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以...
  • SSH协议学习笔记

    2020-01-29 21:20:15
    作用:sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件 telnet使用明文传输,ssh加密传输 二、SSH服务安装 需要安装OpenSSH 四个安装包: openssh-5.3p1-114.el6_7.x86_64:包含Ope....
  • git的SSH协议

    2021-03-02 14:16:17
    使用ssh协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安
  • SSH协议详解

    2017-11-28 22:38:38
    而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接工具代替了telnet、ftp等古老明文传输工具。 SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登陆会话和...
  • 37. SSH协议

    2020-06-22 09:36:52
     Secure Shell 的缩写 SSH 是专为远程登录会话和其他网络服务提供安全性的协议。  利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。 1.2 SSH主要的功能是?  主要用于客户端与远程主机的安全链接和交互...
  • SSH协议相关rfc文档

    2015-02-07 09:33:21
    本资源包含了SSH协议相关的主要rfc文档 其中有: rfc4250 The Secure Shell SSH Protocol Assigned Numbers pdf rfc4251 The Secure Shell SSH Protocol Architecture pdf rfc4252 The Secure Shell SSH ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,150
精华内容 5,660
关键字:

ssh协议