首页 > 其他分享 >云计算实训07——搭建ssh服务、创建用户并授权、在RealServer创建code账号、SSH认证原理、SSH免密登录

云计算实训07——搭建ssh服务、创建用户并授权、在RealServer创建code账号、SSH认证原理、SSH免密登录

时间:2024-07-17 19:54:10浏览次数:17  
标签:sshd 实训 创建 html code yum usr ssh SSH

一、搭建ssh服务

1.安装ssh服务

yum -y install openssh

yum -y install ssh-server

yum -y install ssh-client

2.关闭防火墙和selinux

# 关闭防⽕墙(临时) systemctl stop firewalld # 关闭开机⾃启动 systemctl disable firewalld # 关闭selinux(临时) setenforce 0 # 修改配置⽂件 永久关闭 vim /etc/selinux/config SELINUX=disabled

3、配置yum源

(1)JumpServer配置外⽹YUM源 => 阿⾥云
 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup  wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo  yum clean all  yum makecache
(2)RealServer配置本地YUM源 => 把光盘镜像作为仓库(⾃建YUM仓库) 挂载光盘  mkdir /mnt/cdrom  mount -o ro /dev/sr0 /mnt/cdrom  chmod +x /etc/rc.local  echo 'mount -o ro /dev/sr0 /mnt/cdrom' >> /etc/rc.local 编写local.repo⽂件 cd /etc/yum.repos.d vim local.repo [local] name=local yum baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0

4、openssh软件的安装

安装步骤: (1)下载openssh软件包 yum install openssh -y (2)检查openssh是否安装成功 yum list installed | grep openssh (3)获取openssh⽣成的⽂件列表  服务器:
      rpm -ql openssh-server       # 配置⽂件       /etc/ssh/sshd_config => ssh服务的主配置⽂件       /etc/sysconfig/sshd       # 服务管理脚本       /usr/lib/systemd/system/sshd.service => systemctl start sshd       # ⽂件共享服务 提供⽂件上传下载的服务       /usr/libexec/openssh/sftp-server       # ⼆进制⽂件程序⽂件       /usr/sbin/sshd       # 公钥⽣成⼯具       /usr/sbin/sshd-keygen       # man⼿册       /usr/share/man/man5/sshd_config.5.gz       /usr/share/man/man8/sftp-server.8.gz       /usr/share/man/man8/sshd.8.gz
客户端:
  # rpm -ql openssh-clients   # 客户端配置⽂件   /etc/ssh/ssh_config   # 远程copy命令 服务器间进⾏⽂件传输   /usr/bin/scp   # sftp客户端 上传下载⽂件操作   /usr/bin/sftp   /usr/bin/slogin   /usr/bin/ssh   /usr/bin/ssh-add   /usr/bin/ssh-agent   /usr/bin/ssh-copy-id   /usr/bin/ssh-keyscan # 客户端man⼿册    /usr/share/man/man1/scp.1.gz   /usr/share/man/man1/sftp.1.gz   /usr/share/man/man1/slogin.1.gz   /usr/share/man/man1/ssh-add.1.gz   /usr/share/man/man1/ssh-agent.1.gz   /usr/share/man/man1/ssh-copy-id.1.gz   /usr/share/man/man1/ssh-keyscan.1.gz   /usr/share/man/man1/ssh.1.gz   /usr/share/man/man5/ssh_config.5.gz   /usr/share/man/man8/ssh-pkcs11-helper.8.g

5.查看并修改ssh服务端配置⽂件

man 5 sshd_config RealServer:禁⽌root账号远程登录 man 5 sshd_config PermitRootLogin => yes or no,默认为yes 代表允许通过root账号远程登录此服务器 修改配置文件 vim /etc/ssh/sshd_config 38⾏ PermitRootLogin no 不允许root账户远程登录可以设置其他账户远程登录

6、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、创建⽤户并授权

JumpServer跳板机创建⽤户并授权

第⼀步:创建⽤户与⽤户组(html前端组,tom与jerry)

 创建html前端组

 groupadd html

创建组内⽤户tom与jerry
 useradd -g html tom  useradd -g html jerry
第⼆步:为⽤户添加密码
echo 123456 |passwd --stdin tom echo 123456 |passwd --stdin jerry
第三步:为开发⼈员创建数据⽬录并且设置相应的权限 创建⽤户的数据⽬录:
mkdir -p /code/html => 前端组 ll -d /code/html drwxr-xr-x. 2 root root 6 May 24 10:36 /code/html
更改⽬录的⽂件所属组(更改为html,代表html组内成员可以对这个⽬录进⾏管理)
chgrp -R html /code/html drwxr-xr-x. 2 root html 6 May 24 10:36 /code/html chmod -R g+w /code/html drwxrwxr-x. 2 root html 6 May 24 10:36 /code/html
添加粘滞位权限,防⽌误删除操作
chmod 1770 /code/html drwxrwx--T. 2 root html 6 May 24 10:36 /code/html

2、测试⽤户权限

测试⽤户权限是否设置成功,可以结合第1步⼀起完成

3、禁⽤root登录

RealServer服务器端:
vim /etc/ssh/sshd_config 38⾏ PermitRootLogin no

4、更改SSH默认端⼝

RealServer服务器端:
vim /etc/ssh/sshd_config 17⾏ Port 9999

5、重启SSH服务

systemctl restart sshd systemctl reload sshd restart与reload的本质区别: ① restart其实相当于stop然后在start ② reload不停⽌现有业务,只是重新加载sshd对应的配置⽂件

6、在RealServer创建⼀个code账号

useradd code echo 123456 |passwd --stdin code
测试:在JumpServer远程连接RealServer
ssh -p 3721 [email protected]

7、SSH客户端不验证指纹

The authenticity of host '11.1.1.100 (11.1.1.100)' can't be established. ECDSA key fingerprint is SHA256:Y/cQNWWkX15o2MsJ5HOQBI2m8S33qIA+x3zys8J4pOY. ECDSA key fingerprint is MD5:76:61:86:8b:d5:ee:bf:9c:60:e6:12:fa:f6:f0:74:36. Are you sure you want to continue connecting (yes/no)?yes Warning: Permanently added '11.1.1.100' (ECDSA) to the list of known hosts.
如果我们不想验证指纹,可以通过更改SSH客户端的配置⽂件 JumpServer:
 vim /etc/ssh/ssh_config 35⾏ StrictHostKeyChecking no

8、⽤专业⼯具pwgen⽣成⽤户密码

第⼀步:创建code开发者账号
useradd code
第⼆步:配置EPEL源,安装pwgen⼯具
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 清除缓存 yum clean all 建立缓存 yum makecache
第三步:安装pwgen密码⽣成⼯具
yum -y install pwgen
第四步:使⽤pwgen⽣成随机密码
pwgen -cnBs1 10 1
扩展:pwgen密码⽣成器的使⽤ pwgen --help ⽤法:
pwgen 选项参数 ⻓度 ⽣成个数 Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]
密码中⾄少包含⼀个⼤写字⺟
-c or –capitalize
密码中不包含⼤写字⺟
-A or –no-capitalize
 密码中⾄少包含⼀个数字
-n or –numerals
 密码中不包含数字
-0 or –no-numerals
密码中⾄少包含⼀个特殊符号
-y or –symbols
⽣成完全随机密码
-s or –secure
密码中不包含歧义字符(例如1,l,O,0)
-B or –ambiguous
使⽤SHA1 hash给定的⽂件作为⼀个随机种⼦
-H or –sha1=path/to/file[#seed]
在列中打印⽣成的密码
-C
不要在列中打印⽣成的密码,即⼀⾏⼀个密码
-1
不要使⽤任何元⾳,以避免偶然的脏话
-v or –no-vowels

三、SSH服务补充

1、scp命令

主要功能:⽤于Linux系统与Linux系统之间进⾏⽂件的传输(上传、下载) 上传:
scp [选项] 本地⽂件路径 远程⽤户名@远程服务器的IP地址:远程⽂件存储路径 -r : 递归上传,主要针对⽂件夹 -P : 更换了SSH服务的默认端⼝必须使⽤-P选项
下载:
 scp [选项] 远程⽤户名@远程服务器的IP地址:远程⽂件路径 本地⽂件存储路径 -r : 递归上传,主要针对⽂件夹 -P : 更换了SSH服务的默认端⼝必须使⽤-P选项
scp 指定端⼝ - P ⼤写 ssh 指定端⼝ -p ⼩写 使⽤的默认的22端⼝,不需要指定 scp上传也要注意⽤户的权限问题,没有权限的⽬录⽆法上传

2、踢出⽤户

查看当前在线⽤户
w
踢出某个账号
pkill -kill -t pts/1

四、SSH免密登录解决⽅案

1、为什么需要免密登录

2、SSH认证原理

(基于⽤户名密码+基于密钥对)

① 回顾基于⽤户名密码的认证⽅式 ② 基于密钥对(公钥与私钥)的认证⽅式 => 免密登录 A主机 => JumpServer,B主机 => RealServer 第⼀步:在A主机(JumpServer)⽣成⼀个密钥对(公钥和私钥) 第⼆步:把A主机的公钥通过⽹络拷⻉到B主机(RealServer)上,然后把其内容追加到B主机 的~/.ssh/authorized_keys 第三步:由A主机(JumpServer)向B主机(RealServer)发起登录请求,然后直接在B主机 上进⾏公钥⽐对(判断A主机的公钥是否已经存储在B主机的authorized_keys⽂件中),如果 存在且正确,则⽣成⼀个随机的字符串(如itcast),然后使⽤A主机的公钥对其加密得到加密 的后字符串(如dXdh,34njasz!z.) 第四步:通过⽹络,由B主机讲刚才⽣成的加密后的字符串传输给主机A,主机A接收到加密后 的字符串以后,使⽤⾃⼰本地存储的私钥进⾏解密操作(得到itcast) 第五步:把解密得到的itcast发送到B主机,然后验证与刚才⽣成的字符串是否⼀致,如果⼀ 致,返回登录成功。反之,则返回登录失败。 到此免密登录全部完成!

3、SSH免密登录的具体实现

SSH免密的实现思路⼀共分为三个步骤: 第⼀步:在A主机针对某个账号(tom或jerry)⽣成公钥与私钥 第⼆步:使⽤某些⽅法把公钥发送到B主机中,然后追加到authorized_keys⽂件中 第三步:测试是否实现免密登录
☆ ⽅法⼀:⽐较常⽤(tom)
① 在A主机针对某个账号⽣成公钥与私钥
ssh-keygen
注:如果不想⼀路确认,可以在ssh-keygen -P "",直接⽣成公私钥 ② 使⽤ssh-copy-id把公钥⽂件中的内容传输到服务器端的~/.ssh/authorized_keys⽂件中
ssh-copy-id -p 3712 [email protected] [email protected]'s password:123456
③ 在JumpServer客户端测试免密登录是否成功
ssh -p 3721 [email protected]
☆ ⽅法⼆:集群常⽤(jerry)
① ⽣成公钥与私钥
ssh-keygen
② 把id_rsa.pub⽂件,scp到RealServer服务器端
scp -P 3721 ~/.ssh/id_rsa.pub [email protected]:/home/code/
③ 在RealServer服务器端,把id_rsa.pub⽂件中的内容追加到~/.ssh/authorized_keys⽂件中
cd ~ cat id_rsa.pub >> ~/.ssh/authorized_keys
注意事项:以上配置也⽐较简单,但是实际应⽤时要注意⽂件的权限 RealServer:
~/.ssh : 700 ~/.ssh/authorized_keys : 600
④ 测试免密是否成功
ssh -p 3721 [email protected]

标签:sshd,实训,创建,html,code,yum,usr,ssh,SSH
From: https://blog.csdn.net/m0_73907608/article/details/140499964

相关文章

  • SSH、VNC在CentOS系统上的详细安装指南
    1.SSH(SecureShell)SSH是一种安全的远程登录协议,广泛用于Linux系统。安装和配置过程安装SSH服务器在CentOS系统上,使用以下命令安装OpenSSH服务器:sudoyuminstall-yopenssh-server启动并启用SSH服务sudosystemctlstartsshdsudosystemctlenablesshd......
  • 使用wrangler创建hono和D1的Worker
    以下内容参考了https://developers.cloudflare.com/d1/get-started/https://developers.cloudflare.com/d1/examples/d1-and-hono/1:登录npxwranglerlogin2:创建Workernpmcreatecloudflare@latestd1-tutorialChoose"HelloWorld"Workerforthetypeofapplic......
  • 系统漏洞整改-sshd
    Linux禁止root用户ssh登录出于安全考虑,需要禁止使用root用户通过ssh远程登录Linux禁用root用户远程登录后,需要提供一个权限用户用于ssh远程登录 1、创建拥有sudo权限的用户  ·创建一个普通账户eapp:addusereapp  ·  授权账户目录权限#创建bgx_user01用......
  • 基于kube-vip创建k8s高可用集群
     所使用的环境如下:UbuntuServer20.04LTS(自从CentOS变成CentOSStream后就转用Debian/Ubuntu了)containerd1.5.5(k8s1.24之后就不再支持docker了,因此改用containerd)Kubernetesv1.23.5kube-vipv0.4.3(这里为了简单部署使用L2ARP方式)+-------------+--------------......
  • Raid1创建
    创建RAID1(镜像)阵列在CentOS7上的实验过程如下。RAID1提供了数据冗余,这意味着在其中一块硬盘故障时,数据可以从另一块硬盘恢复,但同时它的性能和容量利用率低于RAID0。如果想要使用/dev/sdb和/dev/sdc这两个完整硬盘来创建一个RAID1镜像阵列,你需要首先确保这两个硬......
  • centos升级openssh
    参考:(胎教级)Centos7.x完全断网升级OpenSSL3.x、OpenSSH9.x以及任意版本_升级openssh版本centos7-CSDN博客需要注意的是:如果在openssh进行makeinstall时出现权限过高的提示(Permissions0640for'/etc/ssh/ssh_host_rsa_key'aretooopen.),一定要记得把权限改小,如改成600。否则老......
  • Raid0创建
    实验步骤步骤1:确认硬盘确认你的硬盘设备名。[root@servera~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0020G0disk├─sda18:10300M0part/boot├─sda28:202G0part[SWAP]└─sda38:3017.7G0pa......
  • Mac ssh自动输入密码
    1.需要在Mac上安装expect,如果已经安装过可以省略这一步Mac上安装一般是使用homebrew安装,在终端上输入以下命令安装。brewinstallexpect如果还未安装过homebrew的朋友参考https://www.cnblogs.com/orzs/p/18306760,或自行百度。2.编写脚本第一个脚本autossh.exp#!/us......
  • W外链创建小红书私信卡片教程
    在当今的社交媒体时代,小红书以其独特的社区属性和用户粘性,成为了许多品牌和个人展示自己、推广产品的重要平台。而在小红书上,一张精美且富有吸引力的卡片往往能够迅速吸引用户的注意,提高点击率和转化率。本文将详细介绍如何使用W外链来创建小红书卡片,帮助你在小红书上更好地展示和......
  • 创建react项目
    1.创建项目npxcreate-react-appname//1.npxnode的工具命令//2.create-react-app创建react项目的固定写法//3.name项目名称2.目录结构              重点关注src目录,入口文件为src/index.js,也就是运行的起点,导入项目的根组件并......