sshd 远程访问及控制

一、SSH远程管理

1.1 ssh 是什么

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

1.2 ssh 客户端和服务端

SSH客户端: Putty、 Xshell、 CRT、MobaXterm、FinalShell

SSH服务端: OpenSSH
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统

1.3 对称加密和非对称加密

对称加密(Symmetric Encryption)

  1. 会话密钥:对称加密使用相同的密钥进行加密和解密。这种加密方式比非对称加密更高效,适合大数据量的传输。
  2. 数据传输:在 SSH 连接建立并验证身份后,客户端和服务器使用协商好的会话密钥进行对称加密,以保证数据在传输过程中的机密性和完整性。

非对称加密(Asymmetric Encryption)

  1. 密钥对:非对称加密使用一对密钥:公钥和私钥。公钥用于加密,私钥用于解密。两者是数学上相关联的。
  2. 身份验证:在 SSH 连接建立的过程中,客户端和服务器使用非对称加密来验证对方的身份。具体过程如下:
    • 服务器向客户端发送其公钥。
    • 客户端使用服务器的公钥加密一个随机生成的会话密钥,并将其发送给服务器。
    • 服务器使用其私钥解密会话密钥

1.4 公钥和私钥简介

  • 公钥(Public Key):可以公开给任何人,用于加密数据或验证数字签名。
  • 私钥(Private Key):必须保密,仅由持有者自己掌控,用于解密数据或创建数字签名。

1.4.1 公钥和私钥的工作原理

  1. 加密与解密

    • 加密:公钥用于加密数据,任何拥有公钥的人都可以对数据进行加密。
    • 解密:私钥用于解密数据,只有拥有私钥的人可以解密由公钥加密的数据。

    流程:

    • 发送者使用接收者的公钥加密消息。
    • 接收者使用自己的私钥解密消息。

1.4.2 公钥和私钥的应用场景

SSH(Secure Shell)

    • 公钥:存储在服务器上的 ~/.ssh/authorized_keys 文件中。
    • 私钥:存储在客户端的本地计算机上,通常在 ~/.ssh/id_rsa 文件中

1.5 ssh 工作原理

1. 成密钥对
接收者生成一对密钥:一个是公钥,一个是私钥。这两个密钥是数学相关的,但是公钥可以公
开,私钥必须保密。
2. 分享公钥
接收者把他们的公钥公开发布出去,可以给任何人使用。
3. 加密信息
发送者想给接收者发送一条加密信息。发送者获取接收者的公钥(这是公开的),然后使用这
个公钥来加密他们要发送的信息。
4. 传输加密数据
发送者把使用接收者公钥加密后的信息发送给接收者。
5. 密信息
接收者收到加密的信息后,使用他们自己的私钥来解密它。只有持有私钥的接收者才能解密这
条信息。

客户端                                服务器
  |                                              |
  |-------- 请求连接 --------------->|
  |                                              |
  |<------- 发送公钥 ----------------|
  |                                              |
  |-------- 交换密钥 --------------->|
  |                                              |
  |-------- 服务器验证 ------------>|
  |                                              |
  |-------- 用户认证 --------------->|
  |                                              |
  |<------- 验证成功 ----------------|
  |                                              |
  |<==== 开始加密通信 =====>|
 

1.6 OpenSSH服务器

OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统

Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动

  • 服务名称:sshd
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd config

二、SSH 远程登录方式

2.1 ssh 直接远程登陆

ssh   远程主机用户名  @远程服务器主机名或IP地址

2.2 ssh 指定端口登录

ssh   远程主机用户名   @远程服务器主机名或IP 地址     -p   端口

2.3 黑白名单设置 

在 SSH 服务器配置文件 /etc/ssh/sshd_config 中,可以使用 AllowUsers DenyUsers 指令来控制访问

配置白名单:

vim /etc/ssh/sshd_config                

添加 AllowUsers  用户

黑名单配置:

DenyUsers  用户   

2.4 基于密钥登录

使用密码验证终归会存在着被骇客暴力破解或嗅探监听的危险,其实也可以让 ssh 服务基于密钥进行安全验证(可无需密码验证)

创建密钥:

ssh-keygen -t rsa                             生成密钥对 拷贝出rsa

传输密钥:

ssh-copy-id root@192.168.192.10       拷贝密钥传给对端

在服务端查看已经收到的密钥文件,cat /root/.ssh/ 会生成一个authorized_keys的文件

vim /etc/ssh/sshd_config                 修改终端登陆配置

systemctl restart sshd      重启网络服务

登陆时不用输入密码

三、远程传输方式

3.1 sftp安全性传输

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分

在服务端的/opt 下有一个 pkm.txt 文件

在客户端sftp登录到对端

下载文件:

get   指定文件  指定对端目录

上传文件:

put   指定文件   指定对端目录

3.2 scp 复制

scp:scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的
 

scp   文件   对端 :指定目录                    将选定文件拷贝到对端目录下

scp   对端 :指定文件    本机指定目录          将服务端文件拷贝到本机指定目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值