Linux基础服务1——Openssh

一、基本简介

常见远程登录工具:

  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.做好日志的备份,经常分析(集中于某台服务器)。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百慕卿君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值