Linux远程连接服务sshd详解

sshd服务

  • sshd简介
  • sshd的key认证
    • 在服务端生成公钥秘钥对
    • 上锁动作:在服务端加密sshd服务
    • 分发秘钥
    • 禁止客户端登录(砸锁)
    • sshd安全设定(让服务端的哪些用户可以被远程连接)
    • 用户登录信息审计
      • 查看使用过并退出的用户信息:last
      • 查看试图登陆但没成功的用户:lastb
  • 主机名设置(方便区分)

sshd简介

  1. sshd=Secure Shell,意思就是可以通过网络在主机中开启shell的服务

  2. 客户端的软件为:sshd——通过该软件实现远程连接

  3. 连接方式:

ssh	username@IP				##	只是文本方式的连接
ssh	username@IP	-X			##	连接成功后可以开启图形

注意:第一次连接时需要建立认证文件,需要yes确定,再次连接时已经生成~/.ssh/known_hosts文件记录,不需要输入yes

Linux远程连接服务sshd详解_第1张图片

vim 	/etc/host.deny
设置禁止相关服务的用户ip,这个主要针对客户端,意思是不让哪些ip连接该服务器

Linux远程连接服务sshd详解_第2张图片在这里插入图片描述

vim /etc/hosts.allow   
 允许某ip连接,优先级比deny高,但我没有实验成功,因为怎么连都可以连通?这是个问题,下面是解决方法:

解决允许某ip连接
仔细观察/etc/hosts.allow,发现里面已经有明确提示:
Linux远程连接服务sshd详解_第3张图片
我们查看hosts_options 了解其使用规则:

man 5 hosts_options

Linux远程连接服务sshd详解_第4张图片
接下来我们修改/etc/hosts.allow
Linux远程连接服务sshd详解_第5张图片测试: 使用IP为172.25.254.102的客户端去访问,连接失败,使用172.25.254.2客户端去访问,连接成功。
在这里插入图片描述

  1. 远程复制scp:可以把虚拟机文件考到别的虚拟机或真机
	上传:	scp		 文件 		root@目的ip:绝对路径
	下载:	scp 	root@目的ip:绝对路径 		文件夹

sshd的key认证

作用:可以让具体的人进行远程连接,更安全!

在服务端生成公钥秘钥对

注意:这里的公钥相当于锁,秘钥相当于钥匙

ssh-keygen

Linux远程连接服务sshd详解_第6张图片

  • 图中三步确认的分别是:
    1.确定生成目录
    2.是否需要密码
    3.确认密码

上锁动作:在服务端加密sshd服务

ssh-copy-id	-i	/root/.ssh/id_rsa.pub	用户@服务端IP

实例:
Linux远程连接服务sshd详解_第7张图片为了试验验证更有效果,我们关闭原始密码登录验证!提高安全性,不让别的用户试服务器秘密
修改服务端/etc/ssh/sshd_config
密码登陆认证 PasswordAuthen设为no ,就只能有密钥的登陆了

vim 	/etc/ssh/sshd_config

Linux远程连接服务sshd详解_第8张图片
重启一下服务:

两种方法选一种:
systemctl restart sshd.service
systemctl reload sshd.service

在这里插入图片描述

分发秘钥

服务端上了锁,这时由服务端决定把钥匙(秘钥)给谁

scp 	/root/.ssh/id_rsa	root@指定客户端IP:/root/.ssh/

注意:如果不成功有可能该客户端没有改目录,建立一个/root/.ssh/即可

Linux远程连接服务sshd详解_第9张图片Linux远程连接服务sshd详解_第10张图片

禁止客户端登录(砸锁)

相当于我把锁砸了,你有钥匙也进不了。我们刚刚对服务器加密上锁的过程产生了一个文件:/root/.ssh/authorized_keys,删除该文件,则产生禁止!

Linux远程连接服务sshd详解_第11张图片
Linux远程连接服务sshd详解_第12张图片
如何恢复?
其实我之前说过,公钥就是锁,所以我们把公钥复制到这个文件中即可!

cp	/root/.ssh/id_rsa.pub	/root/.ssh/authorized_keys
然后重启一下sshd服务
systemctl restart sshd.service
你会发现又可以连接了

sshd安全设定(让服务端的哪些用户可以被远程连接)

主要设定在sshd的配置文件中
查看默认配置:man 5 sshd_config(只是文件名,不是绝对路径)

vim  /etc/ssh/sshd_config
78  PasswordAuthentication yes/no     ##是否允许用户通过登陆系统的密码做sshd的认证
48  PermitRootLogin yes  			  ##是否允许root用户通过sshd服务认证
52  AllowUsers student   			  ##设定用户白名单,白名单设定后,默认不在名单中的用户就不能使用sshd
53  DenyUser  student 				  ##设定用户黑名单,黑名单设定后,默认不在名单中的用户可以使用sshd

添加sshd登陆信息

vim  /etc/motd  		##文件内容就是登陆后显示的信息

Linux远程连接服务sshd详解_第13张图片

用户登录信息审计

w       ##查看正在使用当前系统的用户
w  -f   ##查看使用来源
w  -i   ##显示IP 

Linux远程连接服务sshd详解_第14张图片

查看使用过并退出的用户信息:last

记录在/var/log/wtmp里

查看试图登陆但没成功的用户:lastb

记录在 /var/log/btmp里

Linux远程连接服务sshd详解_第15张图片

主机名设置(方便区分)

hostnamectl	set-hostname 新主机名
设置完成后重启一下终端就可以

你可能感兴趣的:(linux)