SSH服务器配置
在做本实验时,一定要分清命令是在服务端还是在客户端进行的,千万不要混淆!!!
实验过程及目的:
在服务端创建一个新的用户zhangsan,在客户端创建一个新的用户lisi,通过给服务端配置SSH服务器,使zhangsan用户可以免秘钥登录lisi用户
实验环境(本实验是用VmwareWorkstation软件实现的)
主机类型 | 主机名 | 操作系统 | IP地址 |
---|---|---|---|
SSH服务端 | server | CentOS7 | 192.168.11.38 |
SSH客户端 | client | CentOS7 | 192.168.11.2 |
1.实验环境准备—配置虚拟机网络类型(两台主机都要配置成一样的)
2.实验环境准备—修改主机名(我们这里是临时生效,若要永久生效使用hostnamectl set-hostname+主机名
命令。例如:hostnamectl set-hostname server
)
服务端
[root@localhost ~]# hostname server
重新打开终端,才可以看到效果
修改主机名成功
客户端
[root@localhost ~]# hostname client
重新打开终端,才可以看到效果
修改主机名成功
3.实验环境准备—配置两台主机的IP地址
在网络设置中配置(以服务端为例)
配置好IP地址要记得重新启动一下网卡,然后查看是否配置成功。
服务端
[root@server ~]# ifdown ens33
[root@server ~]# ifup ens33
[root@server ~]# ifconfig
客户端
[root@client ~]# ifdown ens33
[root@client ~]# ifup ens33
[root@client ~]# ifconfig
开始实验
一、启动SSH服务(服务端)
1.查看服务端是否已经安装SSH软件包
[root@server ~]# rpm -qa | grep ssh
若没有,则用[root@server ~]# yum -y install openssh-server
命令进行安装
2.开启SSH服务
[root@server ~]# systemctl start sshd.service
查看TCP 22端口是否打开( 22是SSH服务器的监听端口)
[root@server ~]# netstat -ntpl | grep 22
二、SSH客户端连接服务器(口令认证)
使用对方主机账号登录
SSH 对方主机账号@对方主机IP
[root@client ~]# ssh root@192.168.11.38
三、SSH客户端连接服务器(私钥认证)
1 )用ssh-keygen命令生成公钥和私钥,生成的私钥默认在当前操作用户家目录/.ssh/文件夹里面
2 )用ssh-copy-id命令把生成的公钥发送到对方的主机上去,自动保存在对方主机所要使用的远程登陆用户名家目录下/.ssh/authorized_ keys文件中去( .ssh是隐藏目录)
再登录无需密码
1.服务端创建zhangsan用户且更改密码
[root@server ~]# useradd zhangsan
[root@server ~]# passwd zhangsan
默认服务器zhangsan用户家目录
2.客户端创建lisi用户且修改密码
[root@client ~]# useradd lisi
[root@client ~]# passwd lisi
默认客户端lisi用户家目录
3.服务器端使用ssh-keygen
命令生成密钥对
[zhangsan@server root]$ ssh-keygen
生成.ssh隐藏目录
4.服务端使用ssh-copy-id
命令将生成的公钥拷贝至目标主机(客户机),使用对方主机上的lisi登陆
[zhangsan@server root]$ ssh-copy-id lisi@192.168.11.2
5.在客户端lisi用户下查看服务器端zhangsan生成的公钥是否成功保存
[lisi@client ~]$ cd /home/lisi/.ssh
6.验证
(1)
[zhangsan@server root]$ ssh lisi@192.168.11.2
服务端zhangsan用户可以免密登陆客户端上的lisi用户(不需要输入登录密码即可登录)
(2)
[root@server ~]# ssh lisi@192.168.11.2
而服务器root用户则不可以免密ssh使用lisi登陆client,需密码登录
相当于在客户端client上李四用户授权服务器端server 信任用户张三免密登录
前提:需要张三先建立密钥对,用张三的公钥加密李四的密码,建立这种可信连接。
今天的分享就到这里,可能有很多的不足之处,希望大家积极指出。大家有什么问题可以直接私信或者评论,博主肯定会回复的。大家一定要分清命令是在服务端还是在客户端进行的,千万不要混淆!!!