SSH远程登录协议

这篇具有很好参考价值的文章主要介绍了SSH远程登录协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SSH的介绍

1.1什么是SSH服务器

       SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

SSH客户端<--------------网络---------------->SSH服务端

1.2SSH的优点

  • 数据传输是加密的,可以防止信息泄漏

  • 数据传输是压缩的,可以提高传输速度

1.3功能和作用

ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)

作用:

SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输。

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

二、SSH原理

2.1公钥传输原理

SSH远程登录协议,ssh,服务器,linux,运维,网络

  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

2.2ssh加密通讯原理

SSH远程登录协议,ssh,服务器,linux,运维,网络

2.3对称加密概念

1、概念

       采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2.常用算法

       在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等

3、特点

1、加密方和解密方使用同一个密钥;

2、加密解密的速度比较快,适合数据比较长时的使用;

3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点

       对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

2.4非对称加密

1、概念

      非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法

  • RSA(RSA algorithm):目前使用最广泛的算法

  • DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快

  • ECC(Elliptic curve cryptography,椭圆曲线加密算法)

  • ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理

      首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

4、优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

2.5登录例子:

1.ssh  root@172.16.18.4

SSH远程登录协议,ssh,服务器,linux,运维,网络

2.ssh  -l root 172.16.18.4

# -l:指定登录名称

# -p:指定登录端口

SSH远程登录协议,ssh,服务器,linux,运维,网络

3.ssh  172.16.18.4 ifconfig

SSH远程登录协议,ssh,服务器,linux,运维,网络

我们登录时,怎么确认是不是我需要连接的服务器?

################
先连接自己得出的结果,对比一下,连接对面的结果,是否一致,一致的话,就是我们要连接的服务器

2.6操作

#修改默认端口

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

#17 行修改自己默认的端口
17 Port 9527

SSH远程登录协议,ssh,服务器,linux,运维,网络

禁止root用户登录

[root@localhost ssh]#vim  /etc/ssh/sshd_config
#开启38 行 并改为 no,默认注释并写的yes
38 PermitRootLogin no
#注意虽然阻止了root 但是普通用户可以使用su

去掉,每次询问yes or no,修改文件

SSH远程登录协议,ssh,服务器,linux,运维,网络

SSH远程登录协议,ssh,服务器,linux,运维,网络

3.白名单黑名单列表 

[root@localhost ssh]#vim /etc/ssh/sshd_config
#手动添加
AllowUsers zhangsan@192.168.91.101  lisi   
#允许所有有的主机访问我的lisi用户
#只允许 zhangsan 从192.168.91.101上访问

三、使用密钥对免交互验证登录

原理:

  • 用户/密码

  • 基于秘钥

用户/密码:

1.生成公钥和私钥

2.将公钥导给对面

SSH远程登录协议,ssh,服务器,linux,运维,网络

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

SSH远程登录协议,ssh,服务器,linux,运维,网络

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc

  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

免交互登录操作:

SSH远程登录协议,ssh,服务器,linux,运维,网络

ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.18.6

SSH远程登录协议,ssh,服务器,linux,运维,网络

四、简单功能

4.1tr------转换

tr:对文件字符进行处理

SSH远程登录协议,ssh,服务器,linux,运维,网络

把文件里的小写转为大写

SSH远程登录协议,ssh,服务器,linux,运维,网络

tr     abcd    123

#将abcd转为123,对应匹配不够时,默认转为后一个,也就是,c和d都转为3

SSH远程登录协议,ssh,服务器,linux,运维,网络

4.2tr-----压缩

tr    -s    a

SSH远程登录协议,ssh,服务器,linux,运维,网络

4.3tr---------删除

tr    -d     a

SSH远程登录协议,ssh,服务器,linux,运维,网络

cat  /dev/random   |  tr   -dc  [a-zA-Z0-9]  |  head -c  12

SSH远程登录协议,ssh,服务器,linux,运维,网络

 4.4seq-----打印

seq 10

SSH远程登录协议,ssh,服务器,linux,运维,网络

seq   -s+  100

seq   -s+   100|bc 

SSH远程登录协议,ssh,服务器,linux,运维,网络

seq   1   2   10

#打印奇数

seq   0   2    10

#打印偶数 

SSH远程登录协议,ssh,服务器,linux,运维,网络

seq   -s+  1   2  100|bc

#奇数和

seq   -s+  0   2  100|bc

#偶数和

SSH远程登录协议,ssh,服务器,linux,运维,网络

4.5cut---切

-d:指明分隔符是什么

-f:想要获取的字段

cut   -d:   -f1,3  /etc/passwd

#以:为分隔符,切出第一例和第三例

 SSH远程登录协议,ssh,服务器,linux,运维,网络

SSH远程登录协议,ssh,服务器,linux,运维,网络

 4.6结合命令

tr  -s  " " 

#压缩空格

SSH远程登录协议,ssh,服务器,linux,运维,网络

df  | tr  -s " " | grep sda

压缩空格,并过滤出sda

SSH远程登录协议,ssh,服务器,linux,运维,网络

df  | tr  -s " " | grep sda | cut -d" " -f5

#压缩空格,并过滤出sda,以空格为分隔符,切出第五列

SSH远程登录协议,ssh,服务器,linux,运维,网络

df  | tr  -s " " | grep sda | cut -d" " -f5 | tr -d %

######################################

df  | tr  -s " " | grep sda | cut -d" " -f5 | cut -d% -f1

SSH远程登录协议,ssh,服务器,linux,运维,网络

SSH远程登录协议,ssh,服务器,linux,运维,网络

ll | tr -s " " | cut -d " " -f9 | tail -n +2

SSH远程登录协议,ssh,服务器,linux,运维,网络

ifconfig ens33 | tr -s " " | grep netmask | cut -d" "  -f3

 SSH远程登录协议,ssh,服务器,linux,运维,网络文章来源地址https://www.toymoban.com/news/detail-809747.html

到了这里,关于SSH远程登录协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ssh远程免密登录服务器

    1、将密钥复制到服务器指定位置,如”~/.ssh/id_rsa.pub“ 2、添加到authorized_keys 之后便可实现ssh免密连接服务器

    2024年02月13日
    浏览(33)
  • VSCode远程连接服务器(SSH免密登录)

            连接远程服务器的方式众多,本文将介绍基于VS Code的SSH免密登录方法。在开始SSH远程链接以前,您需要完成以下步骤: 1.以Windows平台为例,您需要在cmd终端(Win+R输入cmd)输入: 如果出现信息即代表Windows端的SSH配置完成。 2.Windows生成公钥的方法: 如果您可以在

    2023年04月26日
    浏览(52)
  • mac ssh远程登录服务器免密设置

    1) 进入私钥存放地址 在mac上打开终端。一般私钥存放在.ssh目录里,所以cd到~/.ssh目录。可以先ls查看一下是否存在私钥和公钥文件。拥有.pub结尾的文件是公钥文件,无.pub的是私钥文件。 2) 生成公私钥对 若没有现存的公钥和私钥文件则需要创建一个,代码如下: 到这里就

    2024年03月26日
    浏览(42)
  • VSCode配置SSH远程免密登录服务器

    VScode远程开发时,每次都需要输入密码,其实同理可以和其他应用类似配置免密登录,流程也类似。 1.在本地主机生成公钥和秘钥         ssh-keygen 2.将公钥内容添加至服务器         将生成钥对时会给出其保存路径,找到公钥,复制内容,添加到如下文件。         s

    2024年02月13日
    浏览(41)
  • vscode通过ssh连接远程服务器+免密登录(图文)

    1.打开Visual Studio Code,进入拓展市场(Ctrl+Shift+X),下载拓展Remote - SSH 2. 点击远程资源管理器选项卡,并选择远程(隧道/SSH)类别 3. 点击ssh配置 4.在弹出的选择配置文件中,点击第一个  5.在config文件中输入以下内容 如: 6.保存后点击左边刷新按钮  7.这时展开SSH,就能看到刚刚

    2024年02月14日
    浏览(54)
  • 公网使用SSH远程登录macOS服务器【内网穿透】

    macOS系统自带有Secure Shell 客户端,它可让您登录到侦听传入SSH连接的远程服务器和台式机。我们可以用 ssh username@ip 来ssh到服务器,但通常局限于局域网内的远程。 本次教程,我们将使用cpolar内网穿透工具,映射ssh服务默认端口:22端口,获取公网地址,实现在公网环境下的

    2024年02月02日
    浏览(33)
  • Windows服务器管理技巧:多用户登录设置、开启防火墙与SSH远程登录配置指南

    WindowsServer服务器管理技巧:对于使用WindowsServer服务器开发人员或者运维人员初学者来说,可能会遇到很多问题,比如:如何设置允许多用户同时登录服务器?如何开启服务器防火墙?Windows如何配置SSH远程登录?等等,如果遇到了这些问题,来看看这篇文章就能解决啦! 如果

    2024年02月13日
    浏览(43)
  • 「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接

    转发自cpolar内网穿透的文章:【Vscode远程开发】使用SSH远程连接服务器 「内网穿透」 远程连接服务器工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无

    2024年02月06日
    浏览(42)
  • 使用 FinalShell 进行远程连接(ssh 远程连接 Linux 服务器)

    目录 前言 基本使用教程 新建远程连接 连接主机 自定义命令 路由追踪 后端开发,必然需要和服务器打交道,部署应用,排查问题,查看运行日志等等。一般服务器都是集中部署在机房中,也有一些直接是云服务器,总而言之,程序员不可能直接和服务器直接操作,一般都是

    2024年04月16日
    浏览(65)
  • Visual Studio Code连接远程服务器连接ssh,并设置免密登录以及汉化

    本文介绍如何在Visual Studio Code连接远程服务器连接ssh,并设置免密登录以及界面汉化等。 https://code.visualstudio.com/Download 1.进入官网下载对应版本的IDE 1.点击左侧的“Extensions”拓展下载插件包Python、Chinese(记得点击右下角弹出来的应用即可重新启动展示中文界面)、ssh 2.点击

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包