一、实验环境
要求:打开两台虚拟机(可克隆已有的虚拟机)一个定为服务端,另一个为客户端
如果不知道怎么克隆,可以点下面的蓝字,那是一条文章链接
链接- - >如何克隆虚拟机
nm-connection-editor | 设定ip地址 |
---|---|
ifconfig | 查看ip地址 |
hostnamectl set-hostname | 设定主机名称 |
1.设定两台虚拟机ip地址
在两台虚拟机里分别输入此命令
双击lyx后,如下 (不知道自己电脑ip地址怎么看,可点下面链接,里面有说明- - - - - > 点这个蓝字–查询本机ip地址)
2.修改两台虚拟机主机名
修改好两台虚拟机的ip地址后,现在修改下他们的主机名,以便区分服务端和客户端。
服务端:
再打开之后就修改成功啦
客户端:
再重新打开shell后,主机名就修改成功了
-
服务端server:
linux_server.linux.com
172.25.254.205 -
客户端client:
lyx_client.lyx.com
172.25.254.105
注意:在实验过程中一定要保证selinux处于关闭状态,保证系统防火墙关闭 !!
若selinu处于关闭
如何关闭selinux?
[root@linux_server Desktop]# vim /etc/selinux/config
改完后再输入 reboot 重新启动一下系统,再次打开后selinux就会处于关闭状态
若火墙关闭:
如何关闭火墙?
root@linux_server Desktop]# systemctl disable --now firewalld root@linux_server Desktop]# systemctl restart firewalld.service
restart是重新启动firewalld这个服务
二、为什么要远程登陆?
在一个企业或距离很远的电脑遇到问题需解决时,人们不会专门跑去电脑跟前去运行维护,而是通过网络登陆远程主机来操作。运维工程师不是1v1基本上都是1对多,这就更体现远程登陆的必要性了。
SSH
Secure SHell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。
OpenSSH
OpenSSH 是 SSH 协议的免费开源实现。
提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH基本服务信息
1. 作用
远程登陆需要通过网络在远程主机中开启shell来进行操作,而且远程主机必须提供给这样的开启shell的方式,以上的需求由OpenSSH服务来提供。远程主机中安装并开启了OpensSSH程序,那么我们就可以通过网络来连接这台主机了。
2.软件包名称
openssh-server
3.服务名称
sshd
4.sshd服务端口
22/tcp
5.客户端
ssh -l 登录用户名 远程主机ip |
---|
6.配置文件
/etc/ssh/sshd_config
三.OpenSSH服务的key认证
对称加密:同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
非对称加密:需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
1.用户密码认证 (对称加密)
- 密码容易泄漏
- 容易忘记
2.密钥认证 (非对称加密)
- 安全
- 不会忘记密码
3.建立key认证的方式
1)建立key文件(产生公钥、私钥文件)
2)上传公钥 (加密远程主机)
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-copy-id | 上传密钥命令 |
---|---|
-i | 指定公钥 |
/root/.ssh/id_rsa.pub | 公钥名称 |
root | 远程主机被加密(上锁)用户 |
@ | 分割符 |
172.25.254.205 | 远程主机地址 |
4)发送私钥给客户端
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
scp | 远程复制 |
---|---|
/root/.ssh/id_rsa | 私钥名称 |
root | 接收复制文件用户 |
@ | 分隔符 |
172.25.254.105 | 客户端地址 |
:/root/.ssh/ | 复制文件给客户端的指定目录里 |
5)测试
(客户端有了远程主机的私钥看是否无需输入密码就可登陆)
四、OpenSSH服务的安全配置
1.端口修改
在服务端:
输入此命令
[root@linux_server Desktop] #vim /etc/ssh/sshd_config
改完后一定要reload的一下,才会生效
在客户端测试:
2. 端口绑定
为了提高安全性,我们设定开启的接口ip地址
在服务端:
写入指定的ip地址
测试:
设定接口开启ip地址后,就只有通过设定的ip地址可以进入服务端了。
3.密码认证的关闭
【root@linux_server Desktop】# vim /etc/ssh/sshd_config
保存退出后再重启一下此服务,修改禁用密码认证就成功了
[root@linux_server Desktop]# systemctl restart sshd.service
测试:
4. sshd服务的用户控制
(设定用户登录黑白名单)
在服务端建立相应实验用户:
建立实验素材
输入以下命令
[root@linux_server Desktop]# vim /etc/ssh/sshd_config
在服务端修改黑名单:
systemctl restart sshd.service
在客户端测试:
在服务端修改白名单:
systemctl restart sshd.service
在客户端测试:
root用户的访问控制
在服务端输入以下命令:
[root@linux_server Desktop]#vim /etc/ssh/sshd_config
systemctl restart sshd.service
五.远程执行命令
ssh 172.25.254.20 -l root 此方法登陆时不能调用远程主机的图形命令
ssh -X 172.25.254.20 -l root ##当前登陆可以调用图形 -X 代表启用x11图形连接
ssh -l root172.25.254.205 touch /root/Desktop/file{1…5} | 直接执行命令在远程主机中 |
---|---|
ssh -l root172.25.254.105 t -o StrictHostKeyChecking=no | 在连接主机时不检测HOSTKEY(屏蔽yes、no的输入) |
六.sshd登陆信息修改
输入以下命令
vim /etc/motd
在远程登陆时就会显示你上面再文件里编辑的内容
- Get