**
Linux中的远程登录服务
**
实验环境:
- client:客户端
ip:172.25.254.101 - server:服务端
ip:172.25.254.102
ifconfig:查看ip地址
网络模式选择桥接!!!!
nm-connection-editor:IPv4设定ip地址
一、Openssh的功能
作用:可以实现通过网络在远程主机中开启安全shell的操作。即可以实现远程对服务器进行连接和操作。
- shh -l user server_ip -p 端口号 远程连接命令
- ssh user@server_ip -p 端口号 远程连接命令
以上两个命令等效,其中:
——user:指的是远程连接服务器的用户;
——server_ip:指的是要远程连接的服务器的ip;
——端口号不加时,默认22端口;
——远程连接命令可以不加;
当两台主机需要建立连接时,需要输入yes后,远程主机会向当前主机发送身份公钥,并保存到~/.ssh/目录下的know_hosts文件中:
102主机持有私钥,当客户主机再次连接时会对客户主机进行身份验证,如果身份验证改变,拒绝连接效果如下:
注意:如果远程连接时出现该错误,按照需求,直接删除掉客户机上的~/.ssh/文件下的know_hosts指定的行,即可恢复连接。
ssh常用的参数:
参数 | 含义 |
---|---|
-l | 指定登录用户 |
-i | 指定私钥 |
-X | 开启图形 |
-f | 后台运行 |
-o | 连接指定参数 |
-t | 指定连接跳板 |
二、sshd key认证
1、认证类型
- 对称加密
#定义:加密和解密是同一串字符
#缺点:容易泄露,可以暴力破解,容易遗忘 - 非对称加密
#定义:加密用公钥,解密用私钥
#优点:不会被盗用,攻击者无法通过无密钥方式登录服务器
2、生成非对称加密密钥
#方法1:
ssh-keygen
方法2:
ssh-keygen -f /root/.ssh/id_rsa -P
3、对服务器加密
- ssh-copy-id -i 公钥所在的绝对路径 username@server_ip
- ssh-copy-id -i /home/redhat/.ssh/id_rsa.pub root@172.25.254.102
测试验证:ssh QX@172.25.254.102
实验结果:实现免密码登录。
三、sshd安全优化参数详解
在配置过程中保证selinux处于关闭状态,且需要保证系统防火墙关闭
-
getenforce:查看系统的selinux的状态{Disabled(关闭)/Enforcing(开启)}
##该状态可以在/etc/selinux/config中修改,修改之后需要rebbot命令重启,才能生效。
-
systemctl status firewalld ##查看系统防火墙的状态
-
systemctl disable --now firewalld ##立即关闭防火墙
注意:
##sshd的优化参数修改位置在:/etc/ssh/sshd_config
##每次修改完成后,需要重新启动sshd服务:systemctl restart sshd
1. Port (修改端口):
vim /etc/ssh/sshd_config打开文件如下:
- ss -antlup |grep shhd ##来查看端口号是否修改完成
修改服务器端口验证:
2. PermitRootLogin yes|no(超级用户登录是否禁止)
vim /etc/ssh/sshd_config打开文件如下:
改成no后,systemctl restart sshd重启sshd服务。
实验效果验证:
3. PasswordAuthentication yes|no (是否可以开启原始密码认证方式)
vim /etc/ssh/sshd_config打开文件如下:
改成no后,退出保存,systemctl restart sshd重启sshd服务。
实验验证:
4.AllowUsers Username (用户白名单)
vim /etc/ssh/sshd_config打开文件如下:
增加白名单用户: QX
只有白名单用户能够远程登录服务器!
改成no后,退出保存,systemctl restart sshd重启sshd服务。
实验验证:
5.DenyUsers Username(用户黑名单)
vim /etc/ssh/sshd_config打开文件如下:
增加黑名单用户: QX
黑名单用户不能远程登录服务器!
改成no后,退出保存,systemctl restart sshd重启sshd服务。
实验验证: