Linux修炼之旅第二章!
本章顺着上一次的博客接着来学习Linux的新知识,介绍了Linux中的远程登陆服务。详细介绍了之前用过的ssh远程登陆服务。
下面就开始吧
文章目录
一、Openssh的功能
sshd服务的用途
可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===>ssh 客户端
Secure SHell daemon ===>sshd 服务端
安装包
openssh-server
默认端口
p = 22
可以在/etc/ssh/sshd_config中修改端口号
ps:实验开始前先输入setenforce 0
不然会报错
修改完千万记得
systemctl restart sshd
修改完端口号后再登录就会登不进去
必须再ssh命令后面加上-p 2222才可以
客户端命令
ssh
二、ssh
基本用法
ssh -l root (需要连接的主机ip)
当输入yes后
被连接主机会向当前主机发送身份公钥,并保存此公钥到~/.ssh/know_hosts
被连接主机持有私钥当客户主机再次连接时会对客户主机进行身份验证
如果身份验证改变拒绝连接效果如下
当连接因为认证问题被拒绝时
vim ~/.ssh/know_hosts ##在此文件中删除报错提示相应的行即可
三、sshd key认证
认证类型
对称加密
加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘
非对称加密
加密用公钥,解密用私钥
不会被盗用
攻击者无法通过无密钥方式登陆服务器
生成非对称加密密钥
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##输入保存密钥文件
Enter passphrase (empty for no passphrase): ##密钥密码
Enter same passphrase again: ##确认密码
Your identification has been saved in /root/.ssh/id_rsa. ##私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. ##公钥
ssh-keygen -f /root/.ssh/id_rsa -P “”
对服务器加密
结合上面的内容。通过一个小实验介绍服务器加密过程
首先准备两台主机
172.25.254.188
172.25.254.126
生成密钥
ssh-keygen
一键生成
ssh-keygen -f /root/.ssh/id_rsa -P “”
公钥和私钥
都在root/.ssh下
公钥 authorized_keys
私钥 id_rsa
密钥分发
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.126 #服务器加密
scp /root/.ssh/id_rsa root@172.25.254.188(直接塞到root/.ssh底下)
#126给188发了密钥,126进188就不再需要密码
#这个过程首先时生成公钥相当于我买了一把锁,然后我给你发一个密钥,你就可以配对成功后进我家的们,不需要钥匙(最原来的密码)了
四、sshd 安全优化参数详解
setenforce 0 ##设置警告模式,否则ssh不能正常启动
systemctl disable --now firewalld
Port 2222 #设定端口为2222
PermitRootLogin yes|no #对超级用户登陆是否禁止
PasswordAuthentication yes|no #是否开启原始密码认证方式
AllowUsers shy #用户白名单
DenyUsers shy #用户黑名单
以上介绍的端口更改,密码认证方式用户黑白名单均在如下文档中进行更改
vim /etc/ssh/sshd_config
此处将AllowUsers改为DenyUsers就可以变成黑名单。黑白名单对root用户无效。