4.远程登录服务
目录
1. 简介
1.1. 概念
1.2. 功能:
1.3. 分类
1.3.1. 文字接口:
1.3.2. 图形接口:
1.4. 文字接口连接服务器:
2. 连接加密技术简介
2.1. 密钥解析:
3. SSH工作过程:
3.1. 版本协商阶段
3.2. 密钥和算法协商阶段
3.3. 认证阶段(两种认证方法):
4. SSH服务配置
4.1. 安装ssh
4.2. 配置文件分析:
5. ssh实验
5.1. 实验1
5.2. 实验2
5.3. 实验3
5.4. 实验4
1. 简介
1.1. 概念
远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样
1.2. 功能:
(1)分享主机的运算能力
(2)服务器类型:有限度开放连接
(3)工作站类型:只对内网开放
1.3. 分类
1.3.1. 文字接口:
(1)明文传输:Telnet、RSH等,目前非常少用
# 使用wireshark抓包分析工具验证telnet明文传输
[root@server ~]# yum install telnet-server -y # 安装telnet
[root@server ~]# systemctl start telnet.socket # 启动服务
# 使用xshell 新建telnet连接

# 在https://www.wireshark.org/download.html下载安装wireshar
# 启动wireshark,选择捕获VMnet8网卡

# 在xshell中输入ip a 或其它命令
# 在wireshark选择记录后单右->追踪流->TCP流

# 可以看到是明文传输

加密传输:SSH为主,已经取代明文传输
# 关闭上述telnet连接,建立ssh连接,查看是否为加密传输

1.3.2. 图形接口:
XDMCP、VNC、XRDP等
1.4. 文字接口连接服务器:
SSH(Secure Shell Protocol,安全壳程序协议)由 IETF 的网络小组(Network Working Group)所制定,可以通过数据包加密技术将等待传输的数据包加密后再传输到网络上。
ssh协议本身提供两个服务器功能:
(1)一个是类似telnet的远程连接使用shell的服务器;
(2)另一个就是类似ftp服务的sftp-server,提供更安全的ftp服务。
2. 连接加密技术简介
目前常见的网络数据包加密技术通常是通过“非对称密钥系统”来处理的。
主要通过两把不一样的公钥与私钥来进行加密与解密的过程。
2.1. 密钥解析:
公钥(public key):提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密。
私钥(private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有。
3. SSH工作过程:
服务端与客户端要经历如下五个阶段:

3.1. 版本协商阶段
服务器端打开端口22,等待客户端连接;
客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本
标志字符串,格式为 SSH-<主协议版本号>.<次协议版本号>.<软件版本号> ,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。
客户端收到报文后,解析该数据包,如果服务器的协议版本号比自己的低,且客户端能支持服务器端的低
版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。
客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决
定是否能同客户端一起工作。如果协商成功,则进入密钥和算法协商阶段,否则服务器断开TCP连接
注意:上述报文都是采用明文方式传输
3.2. 密钥和算法协商阶段
服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、
MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等等
服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法
服务器端和客户端利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥
和会话ID。
由此,服务器端和客户端就取得了相同的会话密钥和会话ID。对于后续传输的数据,两端都会使用会话密
钥进行加密和解密,保证了数据传送的安全。在认证阶段,两端会使用会话用于认证过程
会话密钥的生成:
(1)客户端需要使用适当的客户端程序来请求连接服务器,服务器将服务器的公钥发送给客户端。(服务
器的公钥产生过程:服务器每次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host*文件,若
系统刚装完,由于没有这些公钥文件,因此sshd会主动去计算出这些需要的公钥文件,同时也会计
算出服务器自己所需要的私钥文件。)
(2)服务器生成会话ID,并将会话ID发给客户端。
(3)若客户端第一次连接到此服务器,则会将服务器的公钥数据记录到客户端的用户主目录内的 ~/.ssh/known_hosts。若是已经记录过该服务器的公钥数据,则客户端会去比对此次接收到的与之前的记录是否有差异。客户端生成会话密钥,并用服务器的公钥加密后,发送给服务器。
(4)服务器用自己的私钥将收到的数据解密,获得会话密钥。
(5)服务器和客户端都知道了会话密钥,以后的传输都将被会话密钥加密
3.3. 认证阶段(两种认证方法):
基于口令的认证(password认证):客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器,服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败消息。
基于密钥的认证(publickey认证):
(1)客户端产生一对公共密钥,将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorized_keys文件中
(2)认证阶段:客户端首先将公钥传给服务器端。服务器端收到公钥后会与本地该账号家目录下的
authorized_keys中的公钥进行对比,如果不相同,则认证失败;否则服务端生成一段随机字符
串,并先后用客户端公钥和会话密钥对其加密,发送给客户端。客户端收到后将解密后的随机字符串
用会话密钥发送给服务器。如果发回的字符串与服务器端之前生成的一样,则认证通过,否则,认证
失败。
注:服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证
的方法列表。客户端从认证方法列表中选取一种认证方法再次进行认证,该过程反复进行。直到认证成功
或者认证次数达到上限,服务器关闭连接为止
4. SSH服务配置
4.1. 安装ssh
[root@server ~]# yum install openssh-server
4.2. 配置文件分析:
[root@server ~]# vim /etc/ssh/sshd_config
21.#Port 22 # 默认监听22端口,可修改
22.#AddressFamily any # IPV4和IPV6协议家族用哪个,any表示二者均有
23.#ListenAddress 0.0.0.0 # 指明监控的地址,0.0.0.0表示本机的所有地址(默认可修改)
24.#ListenAddress :: # 指明监听的IPV6的所有地址格式26.#HostKey /etc/ssh/ssh_host_rsa_key # rsa私钥认证,默认
27.#HostKey /etc/ssh/ssh_host_ecdsa_key # ecdsa私钥认证
28.#HostKey /etc/ssh/ssh_host_ed25519_key # ed25519私钥认证34 #SyslogFacility AUTH # ssh登录系统的时会记录信息并保存在/var/log/secure
35.#LogLevel INFO # 日志的等级39.#LoginGraceTime 2m # 登录的宽限时间,默认2分钟没有输入密码,则自动断开连接
40 PermitRootLogin yes # 允许管理员root登录
41.#StrictModes yes # 是否让sshd去检查用户主目录或相关文件的权限数据
42.#MaxAuthTries 6 # 最大认证尝试次数,最多可以尝试6次输入密码。之后需要等待某段时间后才能再次输入密码
43.#MaxSessions 10 # 允许的最大会话数49.AuthorizedKeysFile .ssh/authorized_keys # 选择基于密钥验证时,客户端生成一对公私钥之
后,会将公钥放到.ssh/authorizd_keys里面
65 #PasswordAuthentication yes # 登录ssh时是否进行密码验证
66 #PermitEmptyPasswords no # 登录ssh时是否允许密码为空
……
123.Subsystem sftp /usr/libexec/openssh/sftp-server #支持 SFTP ,如果注释掉,则不支持sftp连接
AllowUsers user1 user2 #登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。
如果名单中没有的用户,则提示拒绝登录
5. ssh实验
5.1. 实验1
修改ssh服务器端的端口号
第一步:服务端操作,编辑配置文件,修改端口号
[root@server ~]# vim /etc/ssh/sshd_config # 定位第21行,去掉# 后修改端口号
Port 2222


第二步:服务端操作,重启服务
[root@server ~]# systemctl restart sshd # 注意:ssh的服务名位sshd
[root@server ~]# yum install net-tools # 安装网络工具才可使用netstat命令
[root@server ~]# netstat -ntlp # 查看端口号是否已修改
[root@server ~]# ip a 查看本机IP地址

注意改了端口号后的连接方法

第三步:客户端操作,ssh登录服务端
[root@node1 ~]# ssh root@192.168.48.130 # 尝试登录被拒绝,22端口已关闭
ssh: connect to host 192.168.48.130 port 22: Connection refusedroot@node1 ~]# ssh -p 2222 root@192.168.48.130 # 指明以2222端口登录服务端
The authenticity of host '[192.168.48.130]:2222 ([192.168.48.130]:2222)' can't be
established.
ED25519 key fingerprint is SHA256:K7nvJFkfIh+p9YytEGR44wLbTfpB0Y52oVou0UdG6nc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 输入yes
Warning: Permanently added '[192.168.48.130]:2222' (ED25519) to the list of known
hosts.
root@192.168.48.130's password: # 输入服务端账户密码
Activate the web console with: systemctl enable --now cockpit.socket
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Tue May 30 13:57:25 2023 from 192.168.48.1
[root@server ~]#
# 注销登录
[root@server ~]# exit # 注销,回到node1主机,或者使用ctrl+d进行注销
注销
Connection to 192.168.48.130 closed.

5.2. 实验2
拒绝root账户远程登录
方法:使用配置文件中的Permitrootlogin参数进行实现
参数值:

[root@server ~]# vim /etc/ssh/sshd_config
PermitRootLogin no # yes修改为no


第二步:服务端重启服务
[root@server ~]# systemctl restart sshd
第三步:客户端,测试
[root@node1 ~]# ssh root@192.168.223.129
root@192.168.223.129's password: # 拒绝root连接ssh
Permission denied, please try again.

5.3. 实验3
允许特定账户进行ssh登录,其它账户无法登录
第一步:服务端添加新账户
[root@server ~]# useradd test
[root@server ~]# passwd test
第二步:服务端修改主配置文件
[root@server ~]# vim /etc/ssh/sshd_config
AllowUsers test # 第一行添加
[root@server ~]# systemctl restart sshd

第三步:客户端测试
[root@node1 ~]# ssh test@192.168.223.129
The authenticity of host '192.168.48.130 (192.168.48.130)' can't be established.
ED25519 key fingerprint is SHA256:K7nvJFkfIh+p9YytEGR44wLbTfpB0Y52oVou0UdG6nc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 输入yes
Warning: Permanently added '192.168.223.129' (ED25519) to the list of known hosts.
test@192.168.48.130's password: # 密码123456
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
[test@server ~]$ # 按下ctrl+d进行注销
注销

5.4. 实验4
5.4.1. ssh-keygen
ssh-keygen是用于生成、管理、转换密钥的工具
格式:
[root@node ~]# ssh-keygen -t rsa

分析
-t:指定密钥类型
rsa:使用rsa公钥加密算法,可以产生公钥和私钥
执行后会在对应账户目录中产生一个隐藏目录.ssh,其中有2个文件
(1)id_rsa:私钥文件
(2)id_rsa.pub:公钥文件

5.4.2. 虚拟之间实现密钥的登录(免密登录)
预处理:2台机子都恢复快照
第一步:定位客户端,制作公私钥对
[root@node ~]# ssh-keygen -t rsa

第二步:定位客户端,将公钥上传到服务器端
[root@node1 ~]# ssh-copy-id root@192.168.223.129 # 输入服务端的账户及IP地址
The authenticity of host '192.168.223.129 (192.168.223.129)' can't be established.
ED25519 key fingerprint is SHA256:K7nvJFkfIh+p9YytEGR44wLbTfpB0Y52oVou0UdG6nc.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 输入yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter
out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted
now it is to install the new keys
root@192.168.48.130's password: # 输入服务端root账户的的密码
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.223.129'"
and check to make sure that only the key(s) you wanted were added.
# 注意:客户端将公钥上传到服务器端后,服务器端的/root/.ssh/authorized_keys文件会存储客户端的公
钥数据

第三步:客户端测试
[root@node ~]# ssh root@192.168.223.129Authorized users only. All activities may be monitored and reported.Authorized users only. All activities may be monitored and reported.
Last login: Tue Jan 23 15:18:53 2024 from 192.168.223.129Welcome to 5.10.0-182.0.0.95.oe2203sp3.x86_64System information as of time: 2024年 01月 23日 星期二 15:50:42 CSTSystem load: 0.00
Processes: 152
Memory used: 4.7%
Swap used: 0%
Usage On: 7%
IP address: 192.168.223.129
Users online: 3[root@server ~]#

5.5. 实验5
xshell使用密钥登陆
之前xshell使用的是密码登录,现在通过密钥的配置,实现无密码登录
# 注意:先在服务器端检查/root/.ssh/authorized_keys是否存在,它时存储公钥的文件,若不存在需要新
建
# 服务器端操作
[root@server ~]# cd /root
[root@server ~]# ls -a
[root@server ~]# mkdir .ssh
[root@server ~]# cd .ssh
[root@server .ssh]# vim authorized_keys
# 有时需要注意.ssh目录的权限
打开xshell开始操作,新建密钥:

下一步:

设置密钥文件名加密密码(可不设)

产生公钥,并另存为文件

将windows中保存的公钥文件以记事本的方式打开,复制内容,拷贝到Linux服务器端
的 /root/.ssh/authorized_keys 文件中后保存退出,并重启服务:
[root@server .ssh]# systemctl restart sshd
xshell中新建会话:

点击用户身份验证,选择Public Key 方式验证登录,点击连接

设置以什么身份登录:

输入密钥密码

成功
相关文章:
4.远程登录服务
目录 1. 简介 1.1. 概念 1.2. 功能: 1.3. 分类 1.3.1. 文字接口: 1.3.2. 图形接口: 1.4. 文字接口连接服务器: 2. 连接加密技术简介 2.1. 密钥解析: 3. SSH工作过程: 3.1. 版本协商阶段 3.2. 密钥和算法协商阶段 3.3. 认证阶段(两…...
代码随想录算法训练营第二十九天| 491.递增子序列、46.全排列、47.全排列 II
491.递增子序列 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解题思路:同层相同元素要跳过 java: class Solution {List<List<Integer>> resultnew ArrayList<>();List<Integ…...
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(五)
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…...
多场景建模:阿里多场景多任务元学习方法M2M
multi-scenario multi-task meta learning approach (M2M) 背景 广告领域大部分是针对用户建模的,像点击率预估,很少有针对广告主需求建模(广告消耗预估、活跃率/流失率预估、广告曝光量预估),广告的类型较多&#x…...
仿真机器人-深度学习CV和激光雷达感知(项目2)day03【机器人简介与ROS基础】
文章目录 前言机器人简介机器人应用与前景机器人形态机器人的构成 ROS基础ROS的作用和特点ROS的运行机制ROS常用命令 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎…...
【多商户开源-BSD- Fecmall 电商平台】
关于Fecmall Fecmall 关于,Fecmall介绍 Fecbbc开源BSD多商户系统,真正开源,商用免费授权的多商户系统 Fecmall系统简介: 全称为Fancy ECommerce Shop, 着重于电商架构的研发优化,全新定义商城的架构体系&…...
2023春秋杯冬季赛 --- Crypto wp
文章目录 前言Cryptonot_wiener 前言 比赛没打,赛后随便做一下题目 Crypto not_wiener task.py: from Crypto.Util.number import * from gmpy2 import * import random, os from hashlib import sha1 from random import randrange flagb x bytes_to_long(f…...
ImageMagick使用手册
ImageMagick使用手册 文章目录 ImageMagick使用手册ImageMagick是什么指令总结1.查看版本2.官网验证指令解读3.svg转png4.png转ico5.将指定文件夹中的所有PNG图像转换为ICO图标 本教程持续更新,我学到多少就更新多少。关于ffmpeg如何安装可以看上一篇博客win系统环境…...
嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第五天-Qt编程技巧若干解答(物联技术666)
链接:https://pan.baidu.com/s/1-u7GvgM0TLuiy9z7LYQ80Q?pwd1688 提取码:1688 QT在Windows下制作图表 QT是跨平台的程序设计库,在windows下的程序往往想要有一个好看的图标,方法如下: 1.准备个ICO图标。例如&…...
【蓝桥杯选拔赛真题59】python小写字母 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析
目录 python小写字母 一、题目要求 1、编程实现 2、输入输出...
代码随想录算法训练营Day37|738.单调递增的数字、贪心算法总结
目录 738.单调递增的数字 方法一:暴力解法 方法二:贪心解法 贪心算法总结 738.单调递增的数字 题目链接 文章链接 方法一:暴力解法 class Solution { private:// 各位递增判断函数bool checkNum(int num) {int max 10;while (num) {int …...
笔记-影响力-对比,互惠,赌徒原理
笔记 From 《影响力》 目录 C1 影响力的武器 C2:互惠 C3 承诺和一致 C4:社会认同 C5:喜好 C6:权威 C7:稀缺 Ankie的笔记:对比,互惠,赌徒原理 C1 影响力的武器 人类在认知方面有个原理,叫“对比原理”。 假设有人走进一…...
PIL、cv2、numpy,和pytorch(torch)之间的转换
在图像处理和深度学习中,经常需要在PIL(Python Imaging Library)、OpenCV(cv2)、NumPy和PyTorch之间进行图像数据的转换。下面是这些库之间常见的转换方法。 1. PIL和numpy之间的转换 import numpy as np from PIL i…...
Java面试题50道
文章目录 1.谈谈你对Spring的理解2.Spring的常用注解有哪些3.Spring中的bean线程安全吗4.Spring中的设计模式有哪些5.Spring事务传播行为有几种6.Spring是怎么解决循环依赖的7.SpringBoot自动配置原理8.SpringBoot配置文件类型以及加载顺序9.SpringCloud的常用组件有哪些10.说一…...
电脑怎么剪辑视频?这些软件不可错过
电脑怎么剪辑视频?随着视频时代的到来,越来越多的人开始涉足视频制作。从Vlog到短片,再到专业级的影视作品,视频已经成为了我们生活中不可或缺的一部分。那么,如何才能快速掌握视频剪辑技巧,制作出令人惊叹…...
HBase学习七:Compaction
1、简介 Compaction是从一个Region的一个Store中选择部分HFile文件进行合并。其目的为了减少 HFile 的个数跟清理掉过期和删除的数据。 合并原理是,先从这些待合并的数据文件中依次读出KeyValue,再由小到大排序后写入一个新的文件。之后,这个新生成的文件就会取代之前已合…...
MySQL定期整理磁盘碎片
MySQL定期整理磁盘碎片:提升数据库性能的终极指南 MySQL作为一个强大的关系型数据库管理系统,在长时间运行后可能会产生磁盘碎片,影响数据库性能。本博客将深入讨论如何定期整理MySQL磁盘碎片,以确保数据库的高效运行。我们将介绍…...
【centos7安装docker】
背景: 学习docker,我是想做一个隔离环境,并且部署的话,希望实现自动化,不为安装软件而烦恼,保证每个人的环境一致。 2C4G内存 50G磁盘的虚拟机事先已经准备完毕。 1.查看下centos版本,docker要…...
四、Flask学习之JavaScript
四、Flask学习之JavaScript JavaScript,作为一种前端脚本语言,赋予网页生动的交互性和动态性。通过它,开发者能够操作DOM(文档对象模型)实现页面元素的动态改变、响应用户事件,并借助AJAX技术实现异步数据…...
IO 专题
使用try-with-resources语句块,可以自动关闭InputStream [实践总结] FileIUtils 共通方法最佳实践 [实践总结] java 获取在不同系统下的换行符 [实践总结] StreamIUtils 共通方法最佳实践 斜杠“/“和反斜杠“\“的区别 路径中“./”、“…/”、“/”代表的含义…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
