Linux远程连接

sshd服务原理介绍

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH协议可以有效防止远程管理过程中的信息泄露问题。 SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。 几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

sshd远程连接

ssh    username@ip------文本模式的链接 
ssh -x username@ip-----可以在链接成功后开机图形

注意

第一次链接陌生主机是要建立认证文件所以会询问是否建立,需要输入yes 再次链接此台主机时,因为已经生成~/.ssh/ know _hosts件所以不需要再次输入yes

设置IP

在这里插入图片描述

查看IP

在这里插入图片描述

sshd的用户登录认证

基于password

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

大致流程:

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户
  2. 用户会根据服务器发来的公钥对密码进行加密
  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

基于key

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

大致流程:

  1. 首先在客户端生成一对密钥
  2. 并将客户端的公钥ssh-copy-id拷贝到服务器端
  3. 当客户端再次发送一个连接请求,包括ip、用户名
  4. 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,服务器就会发出“质询”(challenge)表现为一串随机字符,如:acdf。
  5. 服务端将使用客户端拷贝过来的公钥对“质询”进行加密,然后发送给客户端
  6. 得到服务端发来“质询”后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

两种登录认证的对比:

  • 基于key的认证方式,用户必须指定自己密钥的口令。

  • 但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

  • 第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程会比基于passwd认证稍长,可能需要10秒

相关文件:

~/.ssh/authorized_keys          存放已授权基于key登录的主机的公钥
~/.ssh/know_hosts                  存放本机SSH连接过的主机的公钥

免密登录

在服务端输入:ssh-keygen ,生成钥匙和密码 
id_rsa是钥匙 id_rsa.pub是锁

在服务端输入 ssh-keygen 三次回车 ,每次回车都有原因

  • 第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
  • 第二次回车是密码(可以直接回车,不设置密码)
  • 第三次回车也是密码(可以直接回车,不设置密码)

在这里插入图片描述

在服务端输入:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.175
先给自己上锁,也就是给服务端上锁

在这里插入图片描述

再将公匙发给客户端
scp /root/.ssh/id_rsa root@172.25.254.126:/root/.ssh/
客户端IP为172.25.254.126

在这里插入图片描述

测试

客户端可以免密登录到服务端

在这里插入图片描述

连接时发现直接登陆不需要root登陆系统的密码认证

sshd的安全设定

Passwordauthentication yes /no是否允许用户通过登陆系统的密码做sshd的认证
Permitrootlogin yes/ no允许root用户通过sshd服务的认证
Allowusers student wests用户白名单,白名单出现獄认不再名单中的用户不能使用sshd
Denyusers westos用户黑名单,黑名单出现默认不再名单中的用户可以使用sshd

不允许用户通过登陆系统的密码做sshd的认证
在这里插入图片描述
在这里插入图片描述
不允许root用户通过sshd服务的认证
在这里插入图片描述

白名单
在这里插入图片描述
lee是白名单用户之外的用户
在这里插入图片描述
黑名单
在这里插入图片描述

添加sshd登陆登陆信息

vim/etc/motd #文件内容就是登陆后显示的信息

在这里插入图片描述

用户的登陆审计

w

w -fi /var/log/utmp
 
-f     查看正在使用当前系统的用户
-i     查看使用来源##显示IP

在这里插入图片描述

last

last /var/run/wtmp查看使用过并退出的用户信息
lastb var/log/ btmp试图登陆但没成功的用户

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

文件在系统中的传输

scp 文件远程传输

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令, scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用

scp file root@ip:dir上传
scp root@ip:file dir下载 

协议简介

SCP协议,全称SecureCopy协议,是用来定义“本地机器和远端机器之间”或者“远端机器和远端机器之间”传输文件的过程的协议。SCP协议处于OSI七层体系中的应用层。

协议原理

SCP协议基于SSH协议,它使用建立的SSH连接隧道作为数据传输通道,而SSH连接隧道是安全的,因而基于SCP协议的文件传输是安全的。

SCP协议分为SCP Client和SCP Server。SCP Client和SCP Server都包含有“从本地复制文件传输给对方”和“从对方获取文件复制到本地”的功能。但是SCP Server跟常见的Server不同,它不是“持续运行,监听端口”的,而是被触发运行的(比如Tomcat Server持续运行,监听80端口)。

当SCP Client发起文件传输请求(SCP连接请求)(从SCP Client传输文件到SCP Server或者从SCP Server传输文件到SCP Client),会去调用同台机器上的SSH Client程序(SCP Client使用的参数中与SSH Client相关的参数会被直接传递给SSH Client作为SSH Client的命令行参数,如《OpenSSH——ssh_config》所述,SSH Client的参数还可以来自ssh_config文件),
接着SSH Client程序向SSH Server进行文件传输请求,在得到允许的结果后,SSH Server会建立一个SSH连接作为数据隧道,并运行同台机器上的SCP Server。 
此时如果是“从SCP Client传输文件到SCP Server”的情形:接下来SCP Client从本地复制文件数据,将数据通过SSH隧道传输,SCP Server从SSH隧道读取数据,将数据写入本地存储成一个文件; 此时如果是“从SCP Server传输文件到SCP Client”的情形:接下来SCP Server从本地复制文件数据,将数据通过SSH隧道传输,SCP Client从SSH隧道读取数据,将数据写入到本地存储成一个文件。

rsync 文件远程同步

rsync是什么

rsync(remotesynchronize)是Liunx/Unix下的一个远程数据同步工具。它可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码)以减少数据的传输。 rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此其传输速度相当快。 除此之外,rsync可拷贝、显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。

rsync的工作原理

  1. 客户端构造FileList,FileList包含了需要与服务器同步的所有文件信息对name->id(id用来唯一表示文件例如MD5)。

  2. 客户端将FileList发送到服务器。

  3. 服务器上rsync处理客户端发过来的FileList,构建新的NewFileList。其中根据MD5值比较,删除服务器上已经存在的文件信息对,只保留服务器上不存在或变化的文件。

  4. 客户端得到服务器发送过来的NewFileList,然后把NewFileList中的文件重新传输到服务器。

参数意义
-r同步目录
-p同步权限
-o同步文件所有人
-g同步文件所有组
-l同步链接
-D同步链接
-t同步文件时间戳

rsync优点

  • 可以镜像保存整个目录树和文件系统。
  • 可以很容易做到保持原来文件的权限、时间、软硬连接等。
  • 无需特殊权限即可安装。
  • 拥有优化的流程和比较高的文件传输效率。
  • 可以使用shell(rsh、ssh)方式来传输文件。
  • 支持匿名运行。
  • 与scp相比,rsync传输速度绝对远远超过scp的传输速度。

我们在局域网中经常用rsync和scp传输大量mysql数据库文件,发现rsync传输文件速度至少要比scp快20倍以上。
所以如果需要在Liunx/Unix服务器之间互传海量数据时,建议选择rsync进行传输。

rsync认证方式

rsync有两种常用的认证方式,一种是rsync-daemon方式,另外一种是ssh方式。在平时使用过程,我们使用最多的是rsync-daemon方式。

注意:在使用rsync时,服务器和客户端都必须安装rsync程序。

rsync-daemon认证

  • rsync在rsync-daemon认证方式下,默认监听TCP的873端口。
  • rsync-daemon认证方式是rsync的主要认证方式,这个也是我们经常使用的认证方式。并且也只有在此种模式下,rsync才可以把密码写入到一个文件中。

注意:rsync-daemon认证方式,需要服务器和客户端都安装rsync服务,并且只需要rsync服务器端启动rsync,同时配置rsync配置文件。客户端启动不启动rsync服务,都不影响同步的正常进行。

ssh认证

rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传输,类似于scp工具。此时同步操作不在局限于rsync中定义的同步文件夹。

注意:ssh认证方式,不需要服务器和客户端配置rsync配置文件,只需要双方都安装rsync服务,并且也不需要双方启动rsync。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值