2_2.Linux中的远程登录服务

# 一.Openssh的功能 #

1.sshd服务的用途#

#作用:可以实现通过网络在远程主机中开启安全shell的操作

Secure SHell ===>ssh ##客户端

Secure SHell daemon ===>sshd ##服务端

2.安装包#

openssh-server

3.主配置文件# /etc/ssh/sshd_conf

4.默认端口#

22

5.客户端命令#

ssh

# 二.实验环境配置 #

保证干净的实验环境,重新配置nodea与nodeb的ip,并删除不必要的文件

配置nodea:

配置nodeb:

#三.SSH#

(1)基础知识

复制代码
ssh [-l 远程主机用户] <ip|hostname>
ssh -l root 172.25.254.105 ##通过ssh命令在105主机中以root身份开启远程shell

(2)远程主机key的问题解决

复制代码
[lee@westos_lee ~]$ ssh -l root 172.25.254.105
 The authenticity of host '172.25.254.105 (172.25.254.105)' can't be established.
 ECDSA key fingerprint is SHA256:1uLJ3EuYzt16BrtDrGdbjOY6wxCZcfppTLSwTI3BuCs.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes   ##身份证明生成过程确认
#作用#
当收入<yes>后
105主机会向当前主机发送身份公钥,并保存此公钥到~/.ssh/know_hosts
 105主机持有私钥当客户主机再次连接时会对客户主机进行身份验证

如果身份验证改变拒绝连接效果如下
[lee@westos_lee ~]$ ssh -l root 172.25.254.105
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @
    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     
@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 It is also possible that a host key has just been changed.
 The fingerprint for the ECDSA key sent by the remote host is
 SHA256:1uLJ3EuYzt16BrtDrGdbjOY6wxCZcfppTLSwTI3BuCs.
 Please contact your system administrator.
 Add correct host key in /home/lee/.ssh/known_hosts to get rid of this message.
 Offending ECDSA key in /home/lee/.ssh/known_hosts:1
 ECDSA host key for 172.25.254.105 has changed and you have requested strict checking.
 Host key verification failed.

 #当连接因为认证问题被拒绝时解决方案#
 vim ~/.ssh/know_hosts ##在此文件中删除报错提示相应的行即可

(3)ssh常用参数

复制代码
-l #指定登陆用户
-i #指定私钥
-X #开启图形
-f #后台运行
-o #指定连接参数
# ssh -l root@172.25.254.x -o "StrictHostKeyChecking=no" 首次连接不许要输入yes
-t #指定连接跳板
# ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105

​​​​​

# 四.sshd key认证 #

(1)认证类型

(1)对称加密

#加密和解密是同一串字符

#容易泄漏

#可暴力破解

#容易遗忘

(2)非对称加密

#加密用公钥,解密用私钥

#不会被盗用

#攻击者无法通过无密钥方式登陆服务器

(2)生成非对称加密密钥

方法一:交互式

复制代码
#方法1
$ 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 ""

(3)对服务器加密

做完上述步骤,相当于在商店买了一把锁和钥匙,但是还没有给对应的门上上锁

使用下图的步骤,用指定锁对指定用户及主机上锁

复制代码
ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip
ssh-copy-id -i /root/.ssh/id_rsa.pub lee@172.25.254.105

服务器加密测试:

复制代码
ssh lee@172.25.254.105 ##登陆lee用户不需要输入密码

# 五.sshd 安全优化参数详解 #

实验环境:

复制代码
 setenforce 0
 systemctl disable --now firewalld

(1)设定端口为2222

​​​​​​

​​​​​​

(2)对超级用户登陆是否禁止

复制代码
PermitRootLogin yes|no #对超级用户登陆是否禁止 

(3)用户黑白名单

复制代码
AllowUsers lee #用户白名单
DenyUsers lee #用户黑名单

(4)是否开启原始密码认证方式

复制代码
PasswordAuthentication yes|no #是否开启原始密码认证方式

相关推荐
Ponp_1 小时前
Ubuntu 22.04 + ROS 2 Humble实现YOLOV5目标检测实时流传输(Jetson NX与远程PC通信)
linux·运维·yolo
亿坊电商3 小时前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
ha20428941944 小时前
Linux操作系统学习之---线程池
linux·c++·学习
gfdgd xi5 小时前
GXDE 内核管理器 1.0.1——修复bug、支持loong64
android·linux·运维·python·ubuntu·bug
deng-c-f6 小时前
Linux C/C++ 学习日记(43):dpdk(六):dpdk实现发包工具:UDP的发包,TCP的泛洪攻击
linux·dpdk·泛洪
我命由我123456 小时前
Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)
java·运维·服务器·数据库·后端·java-ee·后端框架
拥友LikT6 小时前
惠普DL380,Bios设置了U盘启动以后,读不到U盘(其他品牌服务器解决思路类似)
服务器·系统安装
我系真滴菜6 小时前
EMQX服务器调试
运维·服务器
代码AI弗森7 小时前
Vultr × Caddy 多站点反向代理 + 负载均衡网关系统实战
运维·负载均衡
大海绵啤酒肚7 小时前
EL(F)K日志分析系统
运维·elasticsearch·云计算