使用client的xiaoming用户基于秘钥认证方式通过端口2000使用ssh登录server端的xiaoming用户和xiaohei用户,server端的其他用户都不可被远程登录。
第一步 配置文件
添加xiaoming,xiaohei用户
装openssh-server包用yum provides semanage指令查找semanage的包名并安装。使用添加自定义服务到2000端口时发现2000端口被占用于是改换端口为2222
配置完sshd_config后需要重启sshd服务
systemctl restart sshd
防火墙允许策略,若关闭防火墙则不需要写
测试结果:
登录非xiaoming和xiaohei用户时都显示拒绝访问说明sshd_config配置文件生效。
第二步 密钥认证
实现密钥认证登录
虚拟机1中生成密钥文件
虚拟机1生成的密钥对(公钥和私钥)文件默认路径为
/root/.ssh/密钥文件
将虚拟机1生成的公钥复制传输给对端虚拟机2,若对端虚拟机2没有这个文件,可以选择创建一个。
虚拟机2创建文件
虚拟机1传输文件
然后用虚拟机1(192.168.168.128)远程登陆虚拟机2(192.168.168.129):
用who am i指令可以查出从哪里远程登陆该主机的信息。
显示远程登陆成功,由于虚拟机1中的/root路径是root用户的,其底下的文件目录权限仅root用户可读/写/操作,所以虚拟机1其他用户无法使用root路径下的密钥对文件来远程登陆。
虚拟机1普通用户远程登陆虚拟机2——无法使用密钥文件导致无法远程登陆
因而在一般情况下生成密钥对的时候最好用普通用户来生成密钥文件。
第三步 纠正综合
所以,这一次我们用虚拟机2的xiaoming用户作为客户机(client)生成密钥登录虚拟机2的xiaoming和xiaohei用户。
虚拟机1 操作
一般而言家目录下似乎在有ssh服务的时候,普通用户是会有/.ssh文件目录的,如果没有,则自行手动创建
# mkdir /home/用户/.ssh
# touch /home/用户/.ssh/authorized_keys(用来存放公钥信息)
虚拟机2 操作
#useradd xiaoming
#su - xiaoming
用xiaoming生成密钥对,密钥对文件路径为/home/xiaoming/.ssh/id_rsa
将虚拟机2的公钥分别复制传输到虚拟机1的xiaoming和xiaohei家目录底下的/.ssh/authorized_keys文件下,从而可以从虚拟机2 远程登录到虚拟机1的xiaoming用户和xiaohei用户。
我直接通过Xshell终端从虚拟机2 复制公钥信息到虚拟机1 终端用户的authorized_keys内。(省时间)
测试
从虚拟机2的xiaoming用户远程登陆虚拟机1的xiaoming和xiaohei用户以及root用户
显示只能从虚拟机2远程登录到虚拟机1中的xiaohei和xiaoming用户。测试成功
测试时需要注意的命令格式
#ssh (-p 端口号)对端用户名@对端用户IP
#scp 公钥路径 (-P 端口号) 对端用户名@对端用户IP:需要存放文件到对端用户下的路径