Linux基础服务1——Openssh

news/2024/11/8 22:37:25/

文章目录

  • 一、基本简介
  • 二、登录示例
    • 2.1 当前用户登录
    • 2.2 指定用户登录
  • 三、ssh主机密钥
  • 四、ssh免密登录
  • 五、服务端配置文件
    • 5.1 连接端口号
    • 5.2 限制只能使用普通用户登录
    • 5.3 密钥登录
  • 六、SSH安全注意事项

一、基本简介

常见远程登录工具:

  1. telnet,认证明文,数据传输明文。
  2. ssh,通信过程及认证过程是加密的,主机认证,用户认证过程加密,数据传输过程加密。
  3. dropbear,嵌入式系统专用的SSH服务器端和客户端工具。
  4. scp :跨主机安全复制工具。常用参数: -r 递归复制;-P指定远程机的ssh连接端口;-q静默模式;-a全部复制。

Openssh认证方式:

  • 基于口令认证,账号密码验证。
  • 基于密钥认证,证书密钥验证。

工作模式:

  1. openSSH是基于C/S架构工作。
    • C/S架构:client(客户端)/server(服务器端)。
    • B/S架构:Browser(浏览器)/server , 网站,互联网电商公司使用。
  2. server服务器端 :sshd,配置文件在/etc/ssh/sshd_config,一般修改服务端配置文件。
  3. client客户端 :ssh,配置文件在/etc/ssh/ssh_config。
    • ssh-keygen :密钥生成器。
    • ssh-copy-id :将公钥传输至远程服务器。

二、登录示例

2.1 当前用户登录

  • 以客户端当前用户远程登录到服务器端。若服务器端也存在一样的用户,则登录成功;否则,登陆失败。

在这里插入图片描述

2.2 指定用户登录

  • 使用服务器端指定用户远程登录,后面可以接命令以此查看服务器端的相关信息。
  • w命令可以显示当前登录到计算机的用户列表。

在这里插入图片描述

三、ssh主机密钥

ssh通信原理:

  • ssh通过公钥加密的方式保持通信安全。当本地客户端ssh连接远程服务器时,在该客户端登录之前,服务器端会给本地发送它的公钥副本。
  • 当用户第一次使用ssh连接到远程服务器时,ssh命令会在本地用户的~/.ssh/known_hosts文件中存储远程服务器的公钥。在此之后每当用户进行远程连接时,客户端都会拿 ~/.ssh/known_hosts文件中的服务器条目与服务器发送过来的公钥副本对比,确保从服务器获得相同的公钥。若公钥不匹配,则中断连接。
  • 若远程服务器端由于硬盘故障原因导致它的公钥丢失,或者出于某些正当理由替换公钥,本地客户端则需要更新~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。

在这里插入图片描述

四、ssh免密登录

  • 第一步,本机生成一对密钥,分别为私钥和公钥。
  • 第二步,将公钥复制到想远程登录的服务器上。
  • 第三步,当本机ssh到目标服务器上时,目标服务器上存在的公钥与本机私钥对比,若是一堆密钥,则连接成功。
  • 使用ssh-keygen命令生成密码。将会生成私钥/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub。

1.生成密钥对,默认存储在/root/.ssh/目录,私钥和公钥的权限就分别为600和644,.ssh目录权限必须是700。

ssh-keygen -t ras

在这里插入图片描述
2.将生成的公钥拷贝到目标主机,并修改文件名称为authorized_keys,可在本机的/etc/ssh/sshd_config文件种查看。

ssh-copy-id root@192.168.130.161

在这里插入图片描述
3.此后再远程登录就不需要输入密码了。
在这里插入图片描述

五、服务端配置文件

  • 一般修改服务端配置文件,/etc/ssh/sshd_config,其中有很多配置我们需要了解。
参数释义
Portssh连接服务端的端口号
HostKey客户端第一次连接服务端时,服务端发送给客户端的公钥,存放在客户端的~/.ssh/known_hosts文件中。
PermitRootLogin {yes|no}是否允许root用户远程登录系统,默认为yes。
StrictModes是否验证客户端第一次ssh登录服务时的key,默认为yes,需要用户手动输入yes或no确认。
MaxAuthTries最多能尝试连接的次数,默认为6。
MaxSessions最多能打开的终端数量,默认为10。
PubkeyAuthentication是否开启密钥验证登录,默认为yes。
PasswordAuthentication是否启用密码身份验证,默认开启
AuthorizedKeysFile免密登陆时,客户端需要把公钥放入服务端的.ssh/authorized_keys中。
UseDNS使用服务器域名连接登录。

5.1 连接端口号

  • 默认的ssh连接端口为22,实际情况中是要修改的,减少黑客入侵概率。

1.修改服务端的配置文件连接端口号为999。
在这里插入图片描述
2.此时客户端去连接服务端需要指定端口号,否则连接失败。
在这里插入图片描述

5.2 限制只能使用普通用户登录

1.创建普通用户qingjun。

[root@localhost ssh]# useradd qingjun
[root@localhost ssh]# echo 'qingjun123' | passwd --stdin qingjun

2.修改配置文件参数禁止使用root用户登录,并重启sshd服务。
在这里插入图片描述
3.此时再用root用户登录该服务器会失败。
在这里插入图片描述
4.使用普通用户qingjun登录可以成功连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 密钥登录

1.默认可以使用密钥登录。
在这里插入图片描述
2.修改配置文件,关闭密钥登录,并重启sshd服务。
在这里插入图片描述

3.再次登录该服务器时,就只能使用密码登录。
在这里插入图片描述
4.若要使用密钥登录,需要先生成windows本机的密钥对,然后将公钥放入linux虚拟机的.ssh/authorized_keys文件中。在shell工具上方的“工具”——“新建用户密钥生成导向”,然后开始生成win主机的密钥对,生成的公钥复制粘贴到linux服务器的.ssh/authorized_keys文件中并重启sshd服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、SSH安全注意事项

1.密码应该经常换且足够复杂。

##生成随机密码,指定密码组成元素为a-z0-9_+,10代表密码长度。
tr -dc a-z0-9_+ < /dev/urandom | head -c 10 |xargs

在这里插入图片描述

##生成随机密码,可自定义密码长度。
openssl rand -base64 20

在这里插入图片描述
2.使用非默认端口。必须修改sshd配置文件中的默认端口号。
3.限制登录客户端地址。
4.仅监听特定的IP地址。
5.禁止管理员直接登录。
6.仅允许有限制用户登录:AllowUsers、AllowGroups
7.使用基于密钥的认证。
8.禁止使用空密码。
9.禁止使用SSHv1版本。
10.设定空闲会话超时时长。在/etc/baserc或/etc/profile文件里添加一行export TMOUT=10,表示xhell会话10秒不操作,则断开连接。永久不断开设置为0。
11.利用防火墙设置ssh访问策略。
12.限制ssh的访问频度和并发在线数。
13.做好日志的备份,经常分析(集中于某台服务器)。


http://www.ppmy.cn/news/484316.html

相关文章

汇川MD500主控板资料

原理图PCB图BOM 欢迎大家一起学习 链接&#xff1a;https://pan.baidu.com/s/1jSUonZusru8LUz10O0QEdQ?pwdgeid 提取码&#xff1a;geid

如何查看自己的分区是固态还是机械

第一步 点击管理 第二步 点击磁盘管理 第三步 查看自己之前的分区 ps:因为一般系统是装在固态的&#xff0c;所以和系统一起的就是装在固态里&#xff0c;其余的就是装在机械盘里了。&#xff08;有其他情况除外&#xff09;

数据库服务器到底是用机械硬盘还是固态硬盘

数据库服务器到底是用机械硬盘还是固态硬盘 答案是&#xff1a;固态硬盘 //1.固态硬盘已经便宜了//2.做了RAID5&#xff0c;之后有了数据安全保障&#xff0c;不放心的话 就做RAID1&#xff0c;更何况现在都是数据库集群&#xff0c;所以不担心数据丢失的问题了//3.固态硬盘…

ios测试闪存用什么软件,TLC还是MLC?教你检测iPhone6闪存类型

早前我们曾报道过&#xff0c;曾有iPhone6 Plus用户反映&#xff0c;加装了700个App左右后&#xff0c;系统便会经常出现蓝屏、系统崩溃等现象。对于此现象&#xff0c;苹果官方并没有做出任何的解锁和说法&#xff0c;而据韩国媒体的报道&#xff0c;此次iPhone6/6 Plus的系统…

MLC固态硬盘,与入量是3000次P/E

固态硬盘是什么&#xff0c;固态硬盘寿命有多长 SSD泛指使用闪存芯片组成的SSD固态硬盘&#xff0c;是使用FLASH闪存颗粒作为存储单元&#xff0c;不再使用传统的机械存储方法&#xff0c;使用模拟的方式虚拟出传统 硬盘存取方式和扇区等&#xff0c;也可以简单的理解固态硬盘就…

MLC LLM - 大模型本地部署解决方案

MLC LLM 是一种通用解决方案&#xff0c;它允许将任何语言模型本地部署在各种硬件后端和本地应用程序上&#xff0c;此外还提供了一个高效的框架&#xff0c;供每个人根据自己的用例进一步优化模型性能。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 我们的使命是让…

浅谈MLC LLM(轻设备大模型)

从此&#xff0c;大模型可以在任何设备上编译运行。 「我把大语言模型下到我的 iPhone 上&#xff0c;它神奇地跑起来了&#xff01;」 还在五一假期美梦中&#xff0c;大模型领域的技术就已经发展到了这种程度。Amazing~~~ 对于陈天奇等人开源的新技术&#xff0c;大家一致的…

我的TOP1编程语言

作为一名程序员&#xff0c;选择一门厉害的编程语言确实很重要&#xff0c;那么&#xff0c;我的TOP1编程语言是什么呢&#xff1f;在我的眼中&#xff0c;Python是一门具有魔力且实用的编程语言&#xff0c;通过它的学习&#xff0c;我体会到了其易用性、强大的工具生态环境以…