linux网络之SSH(远程访问)

192 阅读2分钟

SSH协议

简介

SSH是建立在应用层基础上的安全网络协议。它是专为远程登录会话和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度 

使用TCP协议,默认端口号是22

服务器配置文件

/etc/ssh/sshd_config(针对服务端)/etc/ssh/ssh_config(针对客户端)

服务端配置文件常用选项:

scp远程复制

远程登录    ssh [-p 端口] [用户]@服务端IP

推送 上行复制      scp [-r 目录] 文件 [用户]@服务端IP:保存路径 

拉取 下行复制       scp [-P] [用户]@服务端IP:保存路径 本地路径

验证方式

sshd支持密码认证和秘钥认证两种方式

密码验证对服务器中本地系统用户的登录名称,密码进行验证。密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码,但可能会被暴力破解

密钥认证使用公钥私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。密钥认证的基本原理是服务器端使用客户端的公钥对随机内容加密,客户端使用自己的私钥解密并发送给服务器以证实自己的身份

当密码验证和密钥验证都启用时,服务器优先使用密钥验证。

vim /etc/ssh/sshd_config

密钥验证

登录流程

  1. 在进行SSH连接之前,SSH客户端需要先生成自己的公钥私钥对,并将自己的公钥存放在SSH服务器上。
  2. SSH客户端发送登录请求,SSH服务器就会根据请求中的用户名等信息在本地搜索客户端的公钥,并用这个公钥加密一个随机数发送给客户端。
  3. 客户端使用自己的私钥对返回信息进行解密,并发送给服务器。
  4. 服务器验证客户端解密的信息是否正确,如果正确则认证通过。

配置密钥验证

1.在客户端中创建密钥对

ssh-keygen -t rsa

id_rsa是私钥文件,id_rsa.pud是公钥文件

2.将公钥文件上传至服务器

scp ~/.ssh/id_rsa.pub root@192.168.128.10:/opt

3.在服务器中导入公钥文本

4.在客户端使用密钥对验证

5.设置免交互

退出登录 exit