青岛实训08----ssh服务

远程管理SSH服务

⼀、搭建SSH服务

0.安装ssh服务

1.openssh

2.ssh-server

3.ssh-client

cs c lient-server

bs

由于当前的系统已经默认安装了openssh

1、关闭防⽕墙与SELinux(不关SElinux导致sshd的端⼝⽆法修改)

 
  1. # 关闭firewalld防⽕墙

  2. # 临时关闭

  3. systemctl stop firewalld

  4. # 关闭开机⾃启动

  5. systemctl disable firewalld

  6. # 关闭selinux

  7. # 临时关闭

  8. setenforce 0

  9. # 修改配置⽂件 永久关闭

  10. vim /etc/selinux/config

  11. SELINUX=disabled

JumpServer配置外⽹YUM源 => 阿⾥云

 
  1. # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-

  2. Base.repo.backup

  3. # wget -O /etc/yum.repos.d/CentOS-Base.repo

  4. https://mirrors.aliyun.com/repo/Centos-7.repo

  5. # yum clean all

  6. # yum makecache

RealServer配置本地YUM源 => 把光盘镜像作为仓库(⾃建YUM仓库)

① 挂载光盘

 
  1. # mkdir /mnt/cdrom

  2. # mount -o ro /dev/sr0 /mnt/cdrom

  3. # chmod +x /etc/rc.local

  4. # echo 'mount -o ro /dev/sr0 /mnt/cdrom

② 编写local.repo⽂件

 
  1. # cd /etc/yum.repos.d

  2. # vim local.repo

  3. [local]

  4. name=local yum

  5. baseurl=file:///mnt/cdrom

  6. enabled=1

  7. gpgcheck=0

2、openssh软件的安装

SSH服务底层的软件名称叫做openssh,open开源,ssh就是ssh服务。openssh属于C/S架构

软件,其拥有客户端与服务器端。

客户端:ssh

服务端:openssh-server

# yum install openssh -y

获取openssh⽣成的⽂件列表

 
  1. # rpm -ql openssh-server

  2. # 配置⽂件

  3. /etc/ssh/sshd_config    =>      ssh服务的主配置⽂件

  4. /etc/sysconfig/sshd

  5. # 服务管理脚本

  6. /usr/lib/systemd/system/sshd.service =>      systemctl start sshd

  7. # ⽂件共享服务 提供⽂件上传下载的服务

  8. /usr/libexec/openssh/sftp-server

  9. # ⼆进制⽂件程序⽂件

  10. /usr/sbin/sshd

  11. # 公钥⽣成⼯具

  12. /usr/sbin/sshd-keygen

  13. # man⼿册

  14. /usr/share/man/man5/sshd_config.5.gz

  15. /usr/share/man/man8/sftp-server.8.gz

  16. /usr/share/man/man8/sshd.8.gz

  17. # rpm -ql openssh-clients

  18. # 客户端配置⽂件

  19. /etc/ssh/ssh_config

  20. # 远程copy命令 服务器间进⾏⽂件传输

  21. /usr/bin/scp

  22. # sftp客户端 上传下载⽂件操作

  23. /usr/bin/sftp

  24. /usr/bin/slogin

  25. /usr/bin/ssh

  26. /usr/bin/ssh-add

  27. /usr/bin/ssh-agent

  28. /usr/bin/ssh-copy-id

  29. /usr/bin/ssh-keyscan

  30. # 客户端man⼿册

  31. /usr/share/man/man1/scp.1.gz

  32. /usr/share/man/man1/sftp.1.gz

  33. /usr/share/man/man1/slogin.1.gz

  34. /usr/share/man/man1/ssh-add.1.gz

  35. /usr/share/man/man1/ssh-agent.1.gz

  36. /usr/share/man/man1/ssh-copy-id.1.gz

  37. /usr/share/man/man1/ssh-keyscan.1.gz

  38. /usr/share/man/man1/ssh.1.gz

  39. /usr/share/man/man5/ssh_config.5.gz

  40. /usr/share/man/man8/ssh-pkcs11-helper.8.gz

3、查看并修改ssh服务端的配置⽂件

# man 5 sshd_config

RealServer:禁⽌root账号远程登录

 
  1. # man 5 sshd_config

  2. PermitRootLogin => yes or no,默认为yes

 
  1. # vim /etc/ssh/sshd_config

  2. 38⾏ PermitRootLogin no

在配置⽂件设置permitRootlogin no,不允许root账户远程登录可以设置其他账户远程登录。

zhangsan

4sshd服务管理

 
  1. # systemctl restart sshd =>   重启

  2. # systemctl status sshd => 状态

  3. # systemctl stop sshd =>   停⽌

  4. # systemctl start sshd =>   启动

  5. # systemctl enable sshd => 开机⾃启动

  6. # systemctl disable sshd => 开机不⾃启

  7. # ps -ef |grep sshd => 进程

  8. # netstat -tnlp |grep sshd => 端⼝

  9. # 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
刚才我们做了什么
由于root不能远程登录,我们创建了zhangsan,lisi两个账户,并且设置了密码
现在zhangsan。lisi两个程序猿需要对y服务器中的code⽬录进⾏编辑
将zhangsan. lisi都添加到附加组 code(使⽤g roupadd code提前创建好附加组)
usermod -g code zhangsan
User mod -g code lisi

为code⽬录添加code组的权限
chgrp -R code /code/ #将code所属组修改为code组
chmod -R g+w /code/ 为code⽬录的组⽤户加上w权限、
在实际⼯作中,不断的添加或者移除⽤户的组⻆⾊

2、测试⽤户权限

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

3、禁⽤root登录


# vim /etc/ssh/sshd_config
38⾏ PermitRootLogin no    

4、更改SSH默认端⼝    

 
RealServer服务器端:     
# vim /etc/ssh/sshd_config
17⾏ Port 9999    
刚才做什么什么事情
1.修改 vim /etc/ssh/sshd_config 第17⾏的# 删除,22换成9999    

2.重启sshd服务,  
setenforce 0        停⽤selinux    
systemctl stop firewalls     停⽤防⽕墙    
systemctl restart ssh                重启ssh服务    
ssh连接服务器,如果服务端⼝是22,可以不⽤添加-p选项
如果不是22端⼝,就不许添加-p选项
s sh -p9999 -llisi 192.168.71.135
Ssh -p9999   lisi@192.168.71.135

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 code@11.1.1.100

    

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⽣成⽤户密码    

 
在实际⽣产环境中,其⽤户密码⼀定不要⼿⼯设置,建议使⽤专业的密码⽣成⼯具如pwgen。
① 安装随机密码⽣成⼯具pwgen
② 使⽤pwgen⼯具⽣成随机密码
③ 给账号code设置密码
第⼀步:创建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 install pwgen -y
第四步:使⽤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    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值