Linux远程连接服务sshd详解

  • Post author:
  • Post category:linux




sshd简介

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

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

  3. 连接方式:

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


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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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


解决允许某ip连接

仔细观察/etc/hosts.allow,发现里面已经有明确提示:

在这里插入图片描述

我们查看hosts_options 了解其使用规则:

man 5 hosts_options

在这里插入图片描述

接下来我们修改/etc/hosts.allow

在这里插入图片描述
测试: 使用IP为172.25.254.102的客户端去访问,连接失败,使用172.25.254.2客户端去访问,连接成功。

在这里插入图片描述


  1. 远程复制scp

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



sshd的key认证


作用

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



在服务端生成公钥秘钥对


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

ssh-keygen

在这里插入图片描述

  • 图中三步确认的分别是:

    1.确定生成目录

    2.是否需要密码

    3.确认密码



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

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

实例:

在这里插入图片描述
为了试验验证更有效果,我们关闭原始密码登录验证!

提高安全性

,不让别的用户试服务器秘密

修改服务端/etc/ssh/sshd_config

密码登陆认证 PasswordAuthen设为no ,就只能有密钥的登陆了

vim 	/etc/ssh/sshd_config

在这里插入图片描述

重启一下服务:

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

在这里插入图片描述



分发秘钥

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

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


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

在这里插入图片描述
在这里插入图片描述



禁止客户端登录(砸锁)

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

在这里插入图片描述

在这里插入图片描述

如何恢复?

其实我之前说过,

公钥就是锁,所以我们把公钥复制到这个文件中即可!

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  		##文件内容就是登陆后显示的信息

在这里插入图片描述



用户登录信息审计

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

在这里插入图片描述



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

记录在/var/log/wtmp里



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

记录在 /var/log/btmp里

在这里插入图片描述



主机名设置(方便区分)

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



版权声明:本文为weixin_38044888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。