Linux之sshd服务
-
实验环境准备
查看真机IP地址:
ip addr show br0 ##查看网卡bro的IP地址
设置虚拟机desktop的网络:
nm-connection-editor ##打开设置网络图形
命名网络名称以及选择网卡:
选择静态IP并添加新的IP:
设置完毕保存退出:
查询设置完毕的主机desktop的IP:
同理,设置另一台sever虚拟机的网络:
同理,查询设置完毕的server主机IP:
- ping测试
ping 172.25.1.2 ##尝试连接ip地址为172.25.1.2的主机
- 更换主机名称
hostnamectl set-hostname name #修改主机名称
修改desktop主机名称为client(客户端)
同理,修改server主机名称为server(服务端)
- ssh服务
ssh root@172.25.1.2 ##连接IP地址为172.25.1.2的主机
ssh -x root@172.25.1.2 ##连接IP地址为172.25.1.2的主机(带有图形)
注意:第一次连接需要输入yes 同时在/root下生成了.ssh文件,之后便不用输入yes,删除会重置
systemctl status sshd ##查看sshd服务状态
systemctl start sshd ##开启sshd服务
systemctl stop sshd ##关闭sshd服务状态
systemctl restart sshd ##重启sshd服务
systemctl reload sshd ##重新加载sshd服务(不关闭)
- 虚拟机网络故障排错
1.查看真机网络是否正常:
brctl show #真机中查看网络连接
若正常则interfaces第一行有字符显示,反之则无
2.查看虚拟机的IP是否正正确:
如果不正确则需重新设置
3.删除虚拟机网卡并重新添加
在真机root下shell键入命令
virt-manager ##打开virt虚拟机管理器
双击连接不上的虚拟机并点击下图左上角所示“小灯泡”
删除网卡并点击左下角Add Hardware添加,注意网卡的格式为virtio
重新尝试连接ping
- sshd的keygen认证
默认情况下ssh连接服务端的主机需要其root密码
该设置可以使连接不需输入root密码
服务器为了限制客户端对其的连接 ,可以增加sshd的key认证。
设置步骤如下:
ssh-keygen #生成密钥
注意:不设密码可敲三次回车
ls /root/.ssh ##查看密钥是否生成
ssh-copy-id -i /root/.ssh/id_ras.pub root@ip(服务器ip) #该ip为服务端IP
将密钥id_rsa 复制给客户端(需要连接服务端的主机)
scp /root/.ssh/id_rsa root@ip:/root/.ssh/ #将密钥复制给客户端
客户端查看密钥
验证输入是否需要密码
-
sshd的安全设定
取消使用输入密码连接服务器主机连接方式。
需要在服务端主机的 /etc/ssh/sshd_config 的文件进行修改
vim /etc/ssh/sshd_config #使用vim打开该文件
在第78行设置,默认是开启状态“yes”,输入“no”则关闭
设置完毕要重启服务方可生效
最终达到的结果:没密钥的客户端无法连接服务端
真机连接
删除密钥再尝试用client客户端主机连接
限制root连接服务端
依旧在/etc/ssh/sshd_config第48行出修改
白名单(只有xx用户可以连接服务端,不在白名单之内的无法连接)
在/etc/ssh/sshd_config 文件中写入 AllowUsers 用户名
黑名单(即除了xx用户,其余用户都可以连接服务端)
在/etc/ssh/sshd_config 文件中写入 DenyUsers 用户名
- 添加用户登录信息
vim /etc/motd ##设置用户登录信息
- 用户登录审计
w ##查看正在使用当前系统的用户`
w -i ##查看当前使用该系统的ip
>/var/run/utmp ##清空用户连接日志
last ##查看成功登录并退出的用户信息
lastb ##查看尝试连接却没有成功的用户信息
END