搭建ssh服务
# 关闭firewalld防⽕墙
# 临时关闭
systemctl stop firewalld
# 关闭开机⾃启动
systemctl disable firewalld
# 关闭selinux
# 临时关闭
setenforce 0
# 修改配置⽂件 永久关闭
vim /etc/selinux/config
SELINUX=disabled
配置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
挂载光盘
# 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
openssh软件的安装
SSH服务底层的软件名称叫做openssh,open开源,ssh就是ssh服务。openssh属于C/S架构
软件,其拥有客户端与服务器端。
客户端:ssh
服务端:openssh-server
安装步骤:
# yum install openssh -y
检查openssh是否安装成功
# rpm -qa |grep openssh
或
# yum list installed |grep openssh
获取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⼿册
查看并修改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
在配置⽂件设置permitRootlogin no,不允许root账户远程登录可以设置其他账户远程登录。
zhangsan
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
创建⽤户并授权
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登录
RealServer服务器端:
# vim /etc/ssh/sshd_config
38⾏ PermitRootLogin no
更改SSH默认端⼝
RealServer服务器端:
# vim /etc/ssh/sshd_config
17⾏ Port 9999
1.修改 vim /etc/ssh/sshd_config 第17⾏的# 删除,22换成9999
# vim /etc/ssh/sshd_config
38⾏ PermitRootLogin no
# vim /etc/ssh/sshd_config
17⾏ Port 99992.重启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
重启SSH服务
# systemctl restart sshd
或
# systemctl reload sshd
restart与reload的本质区别:
① restart其实相当于stop然后在start
② reload不停⽌现有业务,只是重新加载sshd对应的配置⽂件
在RealServer创建⼀个code账号
# useradd code
# echo 123456 |passwd --stdin code
测试:在JumpServer远程连接RealServer
# ssh -p 3721 code@11.1.1.100
SSH客户端不验证指纹
# vim /etc/ssh/ssh_config
35⾏ StrictHostKeyChecking no
⽤专业⼯具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
踢出⽤户
# 查看当前在线⽤户
w
# 踢出某个账号
pkill -kill -t pts/1
SSH免密登录解决⽅案
⽅法⼀:⽐较常⽤(tom)
① 在A主机针对某个账号⽣成公钥与私钥
# ssh-keygen
② 使⽤ssh-copy-id把公钥⽂件中的内容传输到服务器端的~/.ssh/authorized_keys⽂件中
# ssh-copy-id -p 3712 code@11.1.1.100
code@11.1.1.100's password:123456
③ 在JumpServer客户端测试免密登录是否成功
# ssh -p 3721 code@11.1.1.100
⽅法⼆:集群常⽤(jerry)
① ⽣成公钥与私钥
# ssh-keygen
② 把id_rsa.pub⽂件,scp到RealServer服务器端
# scp -P 3721 ~/.ssh/id_rsa.pub code@11.1.1.100:/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 code@11.1.1.100
1.随便找个账户执⾏ ssh-keygen 按三次回撤,会在当前和⽤户的家⽬录下
# ssh -p 3721 code@11.1.1.100
# ssh-keygen
# scp -P 3721 ~/.ssh/id_rsa.pub code@11.1.1.100:/home/code/
# cd ~
# cat id_rsa.pub >> ~/.ssh/authorized_keys
RealServer:
~/.ssh : 700
~/.ssh/authorized_keys : 600
# ssh -p 3721 code@11.1.1.100~/.ssh/id_res 私钥
~/.ssh/id_rsa_pub 公钥
2.ssh-copy-id -p22 root@192.168.71.140 ⽤root'对root,⽤zhangsan对zhangsan免密
3.ssh -pxxx root@ip地址