- 搭建ssh服务的准备
1、安装nodejs服务
安装eqel镜像(有没有)
[root@oneday ~]# ls /etc/yum.repos.d/
[root@oneday ~]# yum list | grep nodejs
[root@oneday ~]# yum -y install nodejs.x86_64
[root@oneday ~]# node -v
nodejs是一个运行环境,和javajdk运行换进格式一样的
安装完成之后,使用node -v查看版本
2、搭建简易服务器的环境
(1)安装包管理器
[root@oneday ~]# yum -y install npm
[root@oneday ~]# npm -v
(2)npm设置国内镜像:
[root@oneday ~]# npm config set registry https://registry.npmmirror.com #淘宝的镜像站
(3)安装vue的脚手架软件:
[root@oneday ~]# npm install -g @vue/cli -g #-g表示全局安装
[root@oneday ~]# find / -name "vue"
[root@oneday ~]# /usr/local/bin/vue -V
以上是用使用npm(nodejs包管理器)安装软件
(4)使用vue脚手架创建一个前端项目
在当前目录创建vuhtm1000目录,程序员就可以在这个文件中开发前端页面
[root@oneday ~]# /usr/local/bin/vue create vuehtm1000
#进去后选择第三个,然后选择router和vuex,然后一直点回车
(5)启动前端项目
[root@oneday ~]# cd vuehtm1000 #进入到项目的目录
[root@oneday vuehtm1000]# npm run serve
(6)复制第二个地址用本机浏览器访问
(7)构建项目
[root@oneday vuehtm1000]# npm run build #构建静态的html项目
(8)将这些静态文件部署到nginx的html
[root@oneday vuehtm1000]# find / -name "html" -type d #找到nginx的html
/root/Python-3.12.4/Lib/html
/usr/lib64/python2.7/site-packages/lxml/html
/usr/share/doc/pam-1.1.8/html
/usr/share/doc/pcre-devel-8.32/html
/usr/share/nginx/html
/usr/local/py3124/lib/python3.12/html
[root@oneday vuehtm1000]# cp -R ./dist/* /usr/share/nginx/html
(9)启动nginx
[root@oneday vuehtm1000]# systemctl restart nginx
[root@oneday vuehtm1000]# nginx -s reload
二、远程管理ssh服务免密登陆
1、ssh加密算法
des : 对称的公钥加密算法,安全低,数据传输速度快;使用同一个密钥进行加密或解密
ras : 非对称的公钥加密算法,安全,数据传输速度慢,ssh默认的加密算法
公钥:用于加密 保障不是明文传输
私钥: 用于解密 将加密的文件解析成明文
2、基于用户密码的认证
[root@oneday vuehtm1000]# netstat -lntup | grep sshd
#ssh商用收费的对安全负责
#当前系统默认安装的是openssh
#xshell也是使用ssh服务远程管理服务器的
[root@twoday ~]#systemctl status sshd
[root@twoday ~]#systemctl stop sshd
[root@twoday ~]# yum -y install bash-completion-extras.noarch
三、搭建ssh服务
1、安装ssh服务(需要安装三个)
(1)openssh
(2)ssh.server
(3)ssh-client
2、关闭防火墙与selinux(不关selinux导致sshd的端口无法修改)
[root@oneday ~]# systemctl stop firewalld
[root@oneday ~]# systemctl disable firewalld
[root@oneday ~]# setenforce 0
[root@oneday ~]# vim /etc/selinux/config
[root@twoday ~]# ssh -lroot -p22 192.168.1.25
[root@oneday ~]# rpm -qa|grep openssh #检查是否安装openssh
openssh-clients-7.4p1-16.el7.x86_64
openssh-server-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
[root@oneday ~]# yum list installed |grep openssh
openssh.x86_64 7.4p1-16.el7 @anaconda
openssh-clients.x86_64 7.4p1-16.el7 @anaconda
openssh-server.x86_64 7.4p1-16.el7 @anaconda
3、查找ssh.config文件位置
[root@oneday ~]# ls /etc/ssh
[root@oneday ~]# rpm -ql openssh-clients
4、修改ssh服务端的配置文件
修改配置文件 ,不允许root账户远程登陆
[root@oneday ~]# vim /etc/ssh/sshd_config
#38行(不允许root账户远程登录)
[root@oneday ~]# systemctl restart sshd #重启服务
[root@twoday ~]# useradd zhangsan
[root@twoday ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
换另外一台虚拟机进入
[root@oneday ~]# ssh -l zhangsan 192.168.1.15
5、sshd服务管理
systemctl restart sshd => 重启
systemctl status sshd => 状态
systemctl stop sshd => 停⽌
systemctl start sshd => 启动
systemctl enable sshd => 开机⾃启动
systemctl disable sshd => 开机不⾃启
ps -ef |grep sshd => 进程
或
netstat -tnlp |grep sshd => 端⼝
或
ss -naltp |grep sshd
三、ssh实操
1、创建用户并设置密码
[zhangsan@oneday ~]$ su
密码:
[root@oneday zhangsan]# useradd lisi
[root@oneday zhangsan]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@oneday zhangsan]#
[zhangsan@oneday ~]$ ssh -llisi 192.168.8.136
lisi@192.168.8.141's password:
[lisi@oneday ~]$
[root@oneday ~]# ls -l /home/
2、创建共享目录
[root@oneday ~]# mkdir /code/
[root@oneday ~]# groupadd code
3、将zhangsan,lisi都添加到附加组code中
[root@oneday ~]# usermod -g code zhangsan
[root@oneday ~]# usermod -g code lisi
4、为code目录添加code组的权限
[root@oneday ~]# chgrp -R code /code/ //更目录的文件所属组
[root@oneday ~]# chmod -R g+w /code/ //给所属组加写权限
5、测试用户权限(只有code目录下可以创建)
[zhangsan@oneday root]$ touch /opt/zhangsan
touch: 无法创建"/opt/zhangsan": 权限不够
[zhangsan@oneday root]$ touch /code/zhangsan
[zhangsan@oneday root]$
6、更改ssh默认端口
[root@oneday ~]# vim /etc/ssh/sshd_config
7、重启ssh服务
[root@oneday ~]# systemctl restart sshd
8、ssh连接服务器,如果服务端口是22,不用添加-p选项,如果不是22端口,就必须添加-p选项
ssh -p9999 lisi@192.168.8.141
ssh -p -llisi 192.168.8.141
[root@twoday ~]# ssh -llisi -p9999 192.168.8.141
lisi@192.168.8.141's password:
Last login: Wed Jul 17 14:51:13 2024 from b
[lisi@oneday ~]$
9、安装pwgen密码生成工具
[root@oneday ~]# yum -y install pwgen
使用pwgen生成随机密码
[root@oneday ~]# pwgen -cnBs1 10 1
3yvXuVPMLM
10、pwgen密码生成器的使用
pwgen --help
用法:pwgen 选项参数 长度 生成个数
四、ssh服务补充
1、scp命令(上传需要注意权限问题,没有权限的目录无法上传)
主要功能:用于Linux系统与Linux系统之间进行文件的传输(上传、下载)
上传:
scp [选项] 本地文件路径 远程用户名@远程服务器的IP地址:远程文件存储路径
-r:递归上传,主要针对文件夹
-P:更换了SSH服务的默认端口必须使用-P选项
C:\Users\89765>scp -P9999 D:\简历模板\韩登隆_最新版简历.docx zhangsan@192.168.8.141:~
下载:
# scp [选项] 远程用户名@远程服务器的IP地址:远程文件路径 本地文件存储路径
-r:递归上传,主要针对文件夹
-P:更换了SSH服务的默认端口必须使用-P选项
2、踢出用户
查看当前在线用户
[root@oneday ~]# who
root pts/0 2024-07-17 14:01 (192.168.8.1)
wangwu pts/1 2024-07-17 16:14 (192.168.8.136)
踢出某个用户
[root@oneday ~]# pkill -kill -t pts/1
3、SSH免密登录的具体实现
SSH免密的实现思路一共分为三个步骤(三步走)
第一步:在A主机针对某个账号(tom或jerry)生成公钥与私钥
第二步:使用某些方法把公钥发送到B主机中,然后追加到authorized_keys文件中
第三步: 测试是否实现免密登录
☆方法一:比较常用(tom)
在A主机针对某个账号生成公钥与私钥
# ssh-keygen
(1)随便找个账户执行ssh-keygen按三次回车,会在当前和用户的家目录下
~/.ssh/id_res 私钥
~/.ssh/id_rsa_pub 公钥
[root@oneday ~]# su zhangsan
[zhangsan@oneday root]$ ssh-keygen 生成密钥对
[zhangsan@oneday root]$ cd
[zhangsan@oneday ~]$ ls ./.ssh/
id_rsa id_rsa.pub known_hosts
[zhangsan@oneday ~]$ ls ./.ssh/ -l
总用量 12
-rw------- 1 zhangsan code 1675 7月 17 16:17 id_rsa
-rw-r--r-- 1 zhangsan code 392 7月 17 16:17 id_rsa.pub
-rw-r--r-- 1 zhangsan code 175 7月 17 14:49 known_hosts
[zhangsan@oneday ~]$ ssh-copy-id root@192.168.8.136 //需要密码
[zhangsan@oneday ~]$ ssh -lroot 192.168.8.136 //免密登录
[root@twoday ~]# ls ./.ssh/
authorized_keys known_hosts