1 sshd服务
1.1 sshd简介:
sshd=secure shell,可以让远程主机通过网络访问sshd服务,开始一个安全shell,并对其进行操控。
ssh为openssh服务的客户端,sshd为openssh服务的服务端
注:本次实验以两台虚拟机desktop和server为例,为了能够分清楚服务端和客户端,将两台虚拟机的主机名称先做更改。desktop充当客户端,server充当服务端
##################客户端修改############################
######################服务端修改#########################
1.2 远程连接方式:
连接方式: ssh 远程主机用户@远程主机ip 文本模式的连接
ssh -x 远程主机用户@远程主机ip 可以在连接成功后开启图形
注意:第一次连接陌生主机是要建立认证文件,所以会询问是否建立,需要输入yes
再次连接该主机时,因为已经生成/root/.ssh/know_hosts文件所以不需要再次输入yes
如下图所示:当第一次连接服务端主机(172.25.254.92),会询问是否建立,需要输入yes。接下来,会要求输入服务端用户的密码,输入正确后,登陆成功。
在登陆成功后,客户端(172.25.254.172)远程控制服务端。(可以通过看行提示符的主机短名称确定现在是服务端还是客户端)。输入建立文件的命令后,发现在服务端成功建立文件
#####################第一次建立连接输入yes#########################
####################输入连接主机用户的密码#######################
########################连接成功后建立文件#####################
########################在服务端建立成功##############################
2 sshd的key认证
远程登录命令ssh可以登录控制远程主机,但是安全级别低,接下来主要介绍对远程登录的加密,即生成公钥(锁)私钥(钥匙),把钥匙仅分配给允许登录的人,其他人不允许登陆,提高了安全性。详细具体做法如下:
2.1 生成公钥私钥 :
在生成公钥(锁)私钥(钥匙)的时候,根据提示需要输入三次,
第一次
Enter file in which to save the key (/root/.ssh/id_rsa):加密字符保存文件(建议用默认),直接回车即可。也可以保存在其他路径中。
第二次
Enter passphrase (empty for no passphrase):密钥密码,建议密码为空,回车即可
第三次
Enter same passphrase again:确认密码,密码为空回车即可
注:也可以在生成时命令直接指定文件夹和密码:
ssh-keygen -f /root/.ssh/id_rsa -P “”
这样在 /root/.ssh中可以看到已经生成的 id_rsa(钥匙) id_rsa.pub(锁)
2.2 添加key认证方式 :
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.92
使用上述生成的 id_rsa.pub对用户root和主机172.25.254.172 进行加密,需要加密用户的密码。在/root/.ssh/中,文件authorized_keys标志着加密的完成,里面存储的字符串和 id_rsa.pub的一样
2.3 发送钥匙给允许连接的用户主机 :
scp /root/.ssh/id_rsa root@172.25.254.172:/root/.ssh/
在客户端/root/.ssh/中可以看到发送过来的钥匙
2.4 验证客户端是否可以连接服务端 :
在验证前先将允许用户通过登陆系统的密码做sshd的认证关掉,打开配置文件/etc/ssh/sshd_config,将PasswordAuthentication yes 改为PasswordAuthentication no,并且重启服务
#################将yes改为no#############################
##################重启服务##################################
开始验证:在客户端主机中(172.25.254.172)
ssh root@172.25.254.92 连接时发现直接登陆不需要root登陆系统的密码认证
在真机中没有钥匙,没有输入密码的权力无法连接
在客户端切换成其他用户同样无法登陆
3.sshd的安全设定
如果用户没有钥匙,却拥有输入密码的权力,这也是很不安全的。这就需要作安全设定。每次设定修改完之后要重启服务。
打开配置文件:/etc/ssh/sshd_config
78行 PasswordAuthentication yes|no
是否允许用户通过登陆系统的密码做sshd的认证,也就是说其他主机是否有输入密码的权力,上面已经验证
48行 PermitRootLogin yes|no
设置不能连接服务端超级用户,默认是yes可以登陆
#####################ly不能被连接#########################
#####################zf可以被连接#########################
###################ly可以被连接##############################
###################zf不能被连接###############################
4 修改登陆信息
在服务端命令 vim /etc/motd ,输入的文件内容就是客户端登陆后显示的信息
##################添加登陆信息################################
################显示登陆信息################################
5 用户的登陆审计
5.1 查看当前用户登陆信息
w 查看正在使用当前系统的用户
w -f 查看使用来源
w -i 显示ip
若想客户端下线,可以使用 kill -9 进程id
5.2 last 查看使用过并退出的用户信息
5.3 lastb 尝试登陆没有成功的用户信息
##################End########################