文章目录
注意:在实验过程中一定要保证selinux处于关闭状态,保证系统防火墙关闭 !!
若selinu处于关闭
如何关闭selinux?
vim /etc/selinux/config
改完后再输入 reboot 重新启动一下系统,再次打开后selinux就会处于关闭状态
火墙关闭:
如何关闭火墙?
systemctl disable --now firewalld
一、为什么要远程登陆?
在一个企业或距离很远的电脑遇到问题需解决时,人们不会专门跑去电脑跟前去运行维护,而是通过网络登陆远程主机来操作。运维工程师不是1v1基本上都是1对多,这就更体现远程登陆的必要性了。
SSH
Secure SHell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。
OpenSSH
OpenSSH 是 SSH 协议的免费开源实现。
提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH基本服务信息
ssh --------------- > 客户端
secure shell
sshd --------------> 服务端
secure shell daemon
1. 作用
远程登陆需要通过网络在远程主机中开启shell来进行操作,而且远程主机必须提供给这样的开启shell的方式,以上的需求由OpenSSH服务来提供。远程主机中安装并开启了OpensSSH程序,那么我们就可以通过网络来连接这台主机了。
2.软件包名称
openssh-server
3.服务名称
sshd
4.sshd服务端口
22/tcp
5.配置文件
/etc/ssh/sshd_config
二、ssh基本用法
ssh -l root 172.25.5.205 通过ssh命令以root身份进入205主机
ssh认证
ssh常用参数
ssh -l | 指定登录用户 |
---|---|
ssh -o “”StrictHostKeyChecking=no“” | 在连接主机时不检测HOSTKEY(自动输入yes) |
ssh -i | 指定私钥 |
ssh -f | 后台运行 |
ssh -t | 指定连接跳板 |
三.OpenSSH服务的key认证
对称加密:同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
非对称加密:需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
1.用户密码认证 (对称加密)
- 密码容易泄漏
- 容易忘记
2.密钥认证 (非对称加密)
- 安全
- 不会忘记密码
3.建立key认证的方式
1)建立key文件(产生公钥、私钥文件)
2)上传公钥 (加密远程主机)
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.5.205
ssh-copy-id | 上传密钥命令 |
---|---|
-i | 指定公钥 |
/root/.ssh/id_rsa.pub | 公钥名称 |
root | 远程主机被加密(上锁)用户 |
@ | 分割符 |
172.25.5.205 | 远程主机地址 |
3)测试
建立非对称加密,客户端有远程主机的私钥,无需输入密码就可直接登录。
四、OpenSSH服务的安全配置
1.端口修改
在服务端:
输入此命令
vim /etc/ssh/sshd_config
改完后一定要reload一下,才会生效
在客户端测试:
2. 端口绑定
为了提高安全性,我们设定开启的接口ip地址
在服务端:
写入指定的ip地址
测试:
设定接口开启ip地址后,就只有通过设定的ip地址可以进入服务端了。
3.密码认证的关闭
vim /etc/ssh/sshd_config
保存退出后再重启一下此服务,修改禁用密码认证就成功了
systemctl restart sshd.service
测试:
4. sshd服务的用户控制
(设定用户登录黑白名单)
在服务端建立相应实验用户:
建立实验素材
输入以下命令
vim /etc/ssh/sshd_config
在服务端修改黑名单:
systemctl restart sshd.service
在客户端测试:
在服务端修改白名单:
systemctl restart sshd.service
在客户端测试:
root用户的访问控制
在服务端输入以下命令:
vim /etc/ssh/sshd_config
systemctl restart sshd.service
六.sshd登陆信息修改
输入以下命令
vim /etc/motd
在远程登陆时就会显示你上面再文件里编辑的内容
- Get