文章目录

  • Linux中的远程访问及控制
    • SSH远程管理
      • OpenSSH服务器
      • ssh原理
        • 公钥传输原理
      • ssh加密通讯原理
        • 对称加密
        • 非对称加密
    • 配置OpenSSH服务端
    • 登陆
    • 服务端配置
    • ssh客户端
    • TCP Wrappers
    • 轻量级自动化运维工具pssh
    • 总结

Linux中的远程访问及控制

SSH远程管理

OpenSSH服务器

  • SSH (Secure Shell)协议

    • 是一种安全通道协议
    • 对通信数据进行了加密处理,用于远程管理
  • OpenSSH
    • 服务名称: sshd
    • 服务端主程序:/usr/sbin/sshd
    • 服务端配置文件:/etc/ssh/sshd_config

什么是ssh服务器?

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

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

优点

  1. 数据传输是加密的,可以防止信息泄露
  2. 数据传输是压缩的,可以提高传输速度

输入:man sshd 可以查看ssh的详细信息

[root@localhost ~]# man sshd

ssh原理

公钥传输原理

总结:

  • 客户端发起链接请求

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

  • 客户端生成密钥对

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

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

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

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

    会被加密

ssh加密通讯原理

对称加密

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

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

3、特点
1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

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服务器上连接的用户的家目录下

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

配置OpenSSH服务端

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

登陆

方法一:ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。例:[root@localhost ~]# ssh root@192.168.254.20
#默认使用22端口   root(登录对方的用户)加IP 地址,首次登录会询问,并要求输入密码
The authenticity of host '192.168.254.20 (192.168.254.20)' can't be established.
ECDSA key fingerprint is SHA256:fcd3CLLSF9pn6X3CK4S/ET9kvKWFwkNhcxAMaUrAcZk.
ECDSA key fingerprint is MD5:c5:23:65:29:ed:7c:20:4b:cc:5a:7f:c2:6d:d0:fa:90.
Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.254.20' (ECDSA) to the list of known hosts.root@192.168.254.20's password:
Last login: Wed Oct  6 14:52:13 2021 from 192.168.254.11[root@localhost ~]# exit
登出
Connection to 192.168.254.20 closed.
[root@localhost ~]# #登录方法二
ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)例:
[root@localhost ~]# ssh -l root 192.168.254.30
root@192.168.254.30's password:
Last login: Wed Oct  6 14:48:23 2021 from 192.168.254.11

服务端配置

常用配置选项

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

Port    22    #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes   #检查.ssh/文件的所有者,权限等
MaxAuthTries   6  #pecifies the maximum number of authentication # ssh -o NumberOfPasswordPrompts=8root@192.168.91.100需要配合这个选                     项一起使用
attempts permitted per connection. Once the number of failures reaches half this
value, additional failures are logged. The default is 6.
MaxSessions  10         #同一个连接最大会话
PubkeyAuthentication yes     #基于key验证
PermitEmptyPasswords no      #空密码连接
PasswordAuthentication yes   #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

ssh服务的最佳实践

  1. 建议使用非默认端口
  2. 禁止使用protocol version 1
  3. 限制可登录用户
  4. 设定空闲会话超时时长
  5. 利用防火墙设置ssh访问策略
  6. 仅监听特定的IP地址
  7. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs
  8. 使用基于密钥的认证
  9. 禁止使用空密码
  10. 禁止root用户直接登录
  11. 限制ssh的访问频度和并发在线数
  12. 经常分析日志

ssh客户端

scp命令——远程安全复制

sftp命令——安全FTP上下载

格式:sftp user@host

TCP Wrappers

在 Linux 系统中,许多网络服务针对客户端提供了访问控制机制,如 Samba、BIND、 HTTPD、OpenSSH 等。本节将介绍另一种防护机制——TCP Wrappers(TCP 封套),以作 为应用服务与网络之间的一道特殊防线,提供额外的安全保障。

TCP Wrappers 将 TCP 服务程序“包裹”起来,代为监听 TCP 服务程序的端口,增加了 一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正 的服务程序。TCP Wrappers 还可以记录所有企图访问被保护服务的行为, 为管理员提供丰富的安全分析资料。

轻量级自动化运维工具pssh

EPEL源中提供了多个自动化运维工具

  • pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh

    和scp的多个并行工具,项目:http://code.google.com/p/parallel-ssh/

  • pdsh:Parallel remote shell program,是一个多线程远程shell客户端,可以并行执行多个远程

    主机上的命令。 可使用几种不同的远程shell服务,包括rsh,Kerberos IV和ssh,项目: https://p

    dsh.googlecode.com/

  • mussh:Multihost SSH wrapper,是一个shell脚本,允许使用命令在多个主机上通过ssh执行命

    令。 可使用ssh-agent和RSA/DSA密钥,以减少输入密码,项目:http://www.sourceforge.net/pr

    ojects/mussh

pssh 命令选项如下:

-H:主机字符串,内容格式”[user@]host[:port]”
-h file:主机列表文件,内容格式”[user@]host[:port]”
-A:手动输入密码模式
-i:每个服务器内部处理信息输出
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输出文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-P:打印出服务器返回信息
-v:详细模式
--version:查看版本

总结

学习了Linux中的远程访问及控制,关于ssh这方面在工作中会用的较为频繁,需要掌握。

Linux中的远程访问及控制相关推荐

  1. Linux中的高级网络控制

    基本概念: 网络的高级控制是对网络的稳定性及网络的传输速率进行控制 绑定将两个网卡合并用一个接口工作 即就是有两个设备,这两个设备使用同一个ip 链路聚合 将两个线路聚合在一起 bonding ##查 ...

  2. Linux中的系统服务的控制

    1.systemd 系统初始化程序,系统开始的第一个进程,pid为1 2.systemctl 命令 systemctl list-units ##列出当前系统服务的状态 systemctl list- ...

  3. linux 进程 结构体,Linux中进程控制块PCB-------task_struct结构体结构

    Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息 volatile long state; // ...

  4. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)

    Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...

  5. Linux 远程访问及控制

    Linux 远程访问及控制 文章目录 Linux 远程访问及控制 引言: 一.SSH远程管理 1.SSH是什么: 2.SSH客户端与OpenSSH服务端 3.SSH服务配置 4.SSHD服务端的功能 ...

  6. linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问

    Linux中安装MySQL 因为使用yum安装.安装过程需保证网络通畅 一.安装mysql 1.yum安装mysqlCentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql, ...

  7. linux中进程unit是什么意思,Linux系统之进程及服务的控制

    ??系统中正在运行的程序. 2.图形的进程查看方式 ??gnome-system-monitor 3.查看进程的命令 ??whatis?ps 3.1ps ??查看进程 3.2ps?a ??查看与当前环 ...

  8. linux中rwrwr权限是多少,linux4_权限控制.ppt

    <linux4_权限控制.ppt>由会员分享,可在线阅读,更多相关<linux4_权限控制.ppt(21页珍藏版)>请在人人文库网上搜索. 1.1,Linux 应用基础,山东大 ...

  9. linux中nice和prio关系,linux进程控制

    * 程序是存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. * 进程是一个执行中的程序.它是动态的实体. * 进程是资源分配的最小单位 * 线程是调度的最小单位 ** 进程四要素 1 有 ...

最新文章

  1. Java学习总结:18
  2. 02JavaScript中的变量
  3. hdu 4190(二分)
  4. NX,Canary,RELRO,PIE,Linux的4种保护机制讲解
  5. Kaneboy:临时启事:寻找在北京,熟悉SPS、ASP.NET,有两周空闲时间的朋友
  6. Linux创建文件系统及设置分区卷标
  7. CKEditor/FCKEditor的使用
  8. python整形怎么切片_python 切片操作 slice
  9. 【MySQL】MySQL 使用where条件的三种方式
  10. 如今黑帽查找引擎优化的难点
  11. 【安装包】eclipseEE(IDE)
  12. 六、面向对象,会了面向对象妈妈再也不用担心我找不到对象了!
  13. JS学习3-Js运算符优先级
  14. SQL语句的增删改查(详细)
  15. [阅读笔记] 联邦学习攻防综述 An Overview of Federated Deep Learning Privacy Attacks and Defensive Strategies
  16. 学习笔记 C++ 动态数组类的声明
  17. iOS 开发 -- 使用KeyChain保存用户名、密码并实现自动登录
  18. C# 163邮箱自动登陆
  19. C#实现Winform间的数据交互的三种方法
  20. Centos 7 编译升级openssh脚本 —— 筑梦之路

热门文章

  1. Your anti-virus program might be impacting your build performance. 解决方案
  2. 轻松通关以太坊--以太坊简介
  3. 几十行代码写完数独APP
  4. 如何选择我们的损失函数 - 连接统计推断和问题所在领域的桥梁
  5. 区块链运营总监招聘要求
  6. java 增长的极限_下列关于《增长的极限》报告中的论述说法正确的是()。
  7. 乐优商城遇到的坑(一)
  8. 只需一段话,「一键生成」短视频的工具来了
  9. 计算机内外存储器论文,计算机组成原理探讨论文(2)
  10. c语言中强制类型转换