小白带你学习LinuxSSH服务(二十三)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 小白带你学习LinuxSSH服务(二十三)



前言

SSH是一种网络协议,全称为Secure Shell。它用于在不安全的网络上,通过加密和身份验证的方式,安全地远程登录和执行指令。SSH可以提供加密通信和数据传输,以及安全地管理远程服务器和网络设备。其主要功能包括远程操作、文件传输和隧道功能。SSH通过使用公钥加密技术和密码身份验证等方法,确保通信的机密性、完整性和身份认证的安全性。

一、概念

安全外壳协议,提供安全可靠的远程连接

二、特点

ssh是工作在传输层和应用层的协议

ssh提供了一组管理命令

ssh

scp

sftp

ssh-copy-id

提供了多种身份验证机制

三、身份验证机制

密码验证       需要提供密码

密钥对验证       无需提供密码,直接登录

四、验证过程 及基本配置安装

客户端发起请求        ssh 服务器IP地址

确认是否保存指纹信息,yes确认保存

输入目标主机密码

打开子shell建立会话

若退出,则使用exit

4.1基本配置安装服务器和客户端1和远程客户端2

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

设置宽容模式

setenforce 0

配置静态IP服务器和客户端的IP都要配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33

客户端1

远程客户端2

重启网络设备

systemctl restart network

看一下ssh服务进去目录

必须要输入ssh命令才会有

服务器没输入所以没有

Linux的多用户

登入一次就会在客户机1留下记录下次登录直接输入密码

五、加密机制

5.1  单向加密        不可逆的加密算法

5.2  对称加密       加密和解密使用相同的密钥

5.3  非对称加密       加密和解密使用一组密钥对(公钥、私钥)

六、基本参数

6.1  服务名      sshd

6.2  端口号      TCP/22

监听地址任意地址

6.3  配置文件

服务器端

/etc/ssh/sshd_config                ssh主程序sshd的配置文件

/etc/ssh/ssh_host_*               服务器的公钥和私钥文件

~/.ssh/authorized_keys               密钥库文件

客户端

/etc/ssh/ssh.config              客户端的全局配置文件

~/.ssh/known_hosts               客户端存储服务器主机指纹的文件

~/.ssh.id_rsa              客户端生成的私钥

~/.ssh.id_rsa.pub               客户端生成的公钥

没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端

6.4  配置文件解析

/etc/ssh/sshd_config

cd  /etc/ssh
vim  sshd_config

Port        监听端口

Listenaddress    监听地址,0.0.0.0表示监听所有地址

 

PubkeyAuthentication        是否启用密钥对验证

PasswordAuthentication    是否启用密码验证

PermitEmptyPasswords        是否启用空密码,密码验证时,最好关闭

AuthorizedKeysFile      .ssh/authorized_keys    密钥库文件

/etc/ssh/ssh_config

vim /etc/ssh/ssh_config

ConnectTimeout    连接超时时间

 

研究:

1、服务器端密钥库文件中保存的信息是谁的,怎么去理解?

保存的信息是客户端当前的登录用户,搞清楚客户端去登录的时候怎么验证比对这个

存储信息

七、基本操作

7.1  ssh

作用:远程连接的客户端工具

格式:ssh [options]  [user@]hostname  [command]

实验

指定用户登录

练习:客户端以jx01的用户身份登录到服务器

可以登录但是服务器上必须要有jx01的用户

不登录执行命令

练习:客户端使用liujt的用户不登陆服务器,执行创建目录的命令

ssh liujt@192.168.28.1 'mkdir /home/liujt/aaa

上客户端查看

如果上传了密钥对不用输入密码直接传

练习:客户端使用root的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容

服务器看客户端3 ,执行查看文件内容

 

指定端口              -p

指定网卡               -b

7.2  scp

作用:基于ssh的远程复制命令

实验

本地<-->本地

本地<-->远程

客户端 拉服务器

远程<-->远程    !!!

需要第三台远程机

练习

1、将客户端192.168.28.2主机上的/mnt/888.txt文件复制服务器到192.168.28.1主机上

7.3  sftp

作用:安全的文件传输程序

实验

带上l表示当前目录,不带l表示root用户目录

7.4  密钥对验证

作用:提供免交互的密码验证

实验

客户端生成密钥对

ssh-keygen

客户端将公钥上传至服务器

ssh-copy-id

服务器启用密钥对验证

 客户端测试

传输完密钥客户端登录不需要密码直接登录

 

让我们来把远程机设置密钥对

1、客户端生成密钥对

ssh-keygen

     

2、客户端将公钥上传至服务器

ssh-copy-id

服务器启用密钥对验证

查看谁远程登录我们的主机

输入w查看

相关文章
|
29天前
|
XML 数据库 Android开发
探索Android开发:从入门到精通的旅程
在这篇文章中,我们将一起踏上一段激动人心的旅程,通过深入浅出的方式,解锁Android开发的秘密。无论你是编程新手还是有经验的开发者,本文都将为你提供宝贵的知识和技能,帮助你构建出色的Android应用。我们将从基础概念开始,逐步深入到高级技巧和最佳实践,最终实现从初学者到专家的转变。让我们开始吧!
43 3
|
2月前
|
前端开发 Java API
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
本文提供了一份详细的Swagger接口文档生成工具的使用教程,包括了导入依赖、配置类设置、资源映射、拦截器配置、Swagger注解使用、生成接口文档、在线调试页面访问以及如何设置全局参数(如token),旨在帮助Java开发者快速上手Swagger。
755 0
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
|
3月前
|
算法
探索代码的奥秘:从新手到高手的技术感悟
在技术的海洋中,每一行代码都如同一颗璀璨的星辰,引领着我们探索未知的宇宙。本文将分享一段从编程新手逐步成长为技术高手的旅程,以及在这个过程中积累的一些心得与感悟。
22 4
|
4月前
|
算法 Java 程序员
探索代码之美——从小白到大牛的编程旅程深入理解Java中的异常处理机制
【8月更文挑战第29天】编程,一门看似神秘而复杂的艺术,实则充满无限可能与创造的乐趣。本文将带你走进编程的世界,从最初的迷茫与困惑,到逐步掌握编程思维,再到深入理解代码背后的哲学,一起见证一个编程小白如何成长为技术大牛的奇妙旅程。
|
4月前
|
搜索推荐 程序员
代码之旅:我的编程实践与感悟
在这个数字时代,编程已经成为一种重要的技能。它不仅仅是计算机科学的一个分支,更是一种解决问题的工具。从最初的迷茫到现在的熟练,我在编程的道路上经历了许多挑战和困惑。这篇文章将分享我的编程实践经历,包括我如何从一个初学者成长为一名有经验的程序员,以及在这个过程中我所学到的一些重要经验和感悟。
|
7月前
|
前端开发 JavaScript 程序员
2024年最新65% 的程序员竟都是自学成才?_为啥学技术都自学,2024年最新42岁程序员面试
2024年最新65% 的程序员竟都是自学成才?_为啥学技术都自学,2024年最新42岁程序员面试
2024年最新65% 的程序员竟都是自学成才?_为啥学技术都自学,2024年最新42岁程序员面试
|
6月前
|
Java Unix Linux
编程入门(二)【计算机基础三】
编程入门(二)【计算机基础三】
56 1
|
6月前
|
存储 算法 Java
技术好文共享:程序员的进阶课
技术好文共享:程序员的进阶课
26 0
|
7月前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
89 1
|
6月前
|
存储 数据处理
编程入门(二)【计算机基础二】
编程入门(二)【计算机基础二】
48 0

相关实验场景

更多