赞
踩
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。相比于Telnet有着出色的安全保障,正确使用的话能够规避网络上绝大多数的网络漏洞,同时也有着更快的传输速度。目前大多数公司的服务器均采用该协议来进行远程连接。
第四章SSH协议密钥登录(内容较多,完成前三章SSH服务已经可以账号密码登录)
以下全部操作均需在ROOT用户或者拥有ROOT权限的用户下进行
首先需要检查SSH服务有没有安装(如果当初安装系统时软件安装选择服务器一般都预装了SSH服务)
输入如下指令:
rpm -qa | grep ssh
出现以上内容就代表已经预装,若没有出现则输入:
yum install openssh-server
则代表安装完成接下来对ssh配置文件进行配置
vim /etc/ssh/sshd_config
把Port前的注释(即#)去掉
PermitRootLogin代表是否允许root用户远程登入
配置完成后按Esc 再切换命令模式输入wq(保存并退出)
完成后输入如下指令开启ssh服务
systemctl start sshd.service
该指令输入后没有返回值
再输入
systemctl status sshd.service
检查ssh服务是否开启,出现running即为在运行,为了避免每次开机都需要重新开启,输入如下指令把ssh服务设置为开机启动
systemctl enable sshd.service
输入如下指令,检查22号端口有没有开放
netstat -an | grep 22
如果出现红框内掩码端口22处于LISTEN(即监听状态)代表该端口已经开放,无需进行防火墙设置
如果没有开放则输入如下指令开放22号端口
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=22/udp
如出现该提示
代表该22端口已经开放
再重载防火墙
firewall-cmd --reload
到此ssh服务环境安装及配置完成。
选择虚拟机上菜单 编辑-虚拟网络编辑器 后出现该界面
选择更改设置获得管理员权限
选中VMnet8虚拟网卡再选择红箭头处的NAT设置
选择添加,弹出该窗口
主主机端口:就是需要映射到的电脑网卡的端口
虚拟机IP地址:就是虚拟机内虚拟网卡分配给linux系统的ip地址
虚拟机端口:就是linux系统虚拟网卡的端口
描述:可以随便填便于区分
接着我们需要知道虚拟机ip地址是多少,可输入以下指令
ifconfig | grep -w inet
指令说明:将ifconfig运行的结果通过管道传输给grep查找命令进行关键字查找
-w 按精确字符进行查找
好处:减少大量字符,只显示查找的内容
可以看见,只有我们需要的信息显示,多余的已经过滤掉,图中红框即为虚拟机地址,并将其填入
全部填入后就是这样
输入后一直点确定即可
完成以上设置,再一直点确定即可
等重启NAT服务和DHCP服务
此时端口映射已经完成
为了解决部分品牌笔记本软件适配较好,将windows系统防火墙使用自己家的杀毒软件进行接管,导致用户无法从软件层面对防火墙进行设置,所以我以后统一使用调用系统底层代码强制设置防火墙。
先打开搜索
输入cmd(命令提示符)
选择以管理员身份运行
打开的命令行头标为管理员
在其中分别输入以下指令
强制添加入站规则
netsh advfirewall firewall add rule name="SGAccessInboundRule" dir=in protocol=tcp action=allow localport=22
强制添加出站规则
netsh advfirewall firewall add rule name="SGAccessOutboundRule" dir=out protocol=tcp action=allow remoteport=22
由于windows系统不带SSH客户端如果没有从第三方安装ssh客户端就无法在cmd中使用ssh连接,但VMware虚拟机自带了一个SSH客户端,点击虚拟机-SSH-连接到SSH(该选项是本机连接虚拟机SSH)
就会弹出如下界面,输入需要连接的虚拟机账号和ip[在选项里输入需要连接的服务器ip,如果是当前虚拟机则忽略]
获取windows系统ip方法:
在中输入cmd
打开命令提示符再输入ipconfig 弹出以下界面
如果连接有线网络ip地址为上图IPv4地址192.168.0.146 (每台电脑分配的ip不一致)
否则就是上图的无线局域网适配器 WLAN下的IPv4地址 192.168.0.36 (ip地址仅供参考)
如果是本机连接请进入linux系统打开终端输入
ifconfig | grep -w inet
(注意:该指令与windows系统不同)
即为红框部分IP地址
当前虚拟机连法,下图为当前虚拟机SSH服务已经成功连接,第一次连接需要从服务器下载证书,填yes即可。然后输入密码即可成功连接。
如果是连接其他虚拟机则在选项中输入需要连接的同一网络环境下其他主机的ip即可
为什么使用密钥,因为更加方便登录(免密码)和更加安全。目前最流行的两种SSH身份验证机制是基于密码的身份验证和基于公钥的身份验证。使用SSH密钥通常比传统的密码身份验证更安全和方便。SSH协议密钥有公钥和私钥,公钥需要上传到服务器,而私钥则是个人保存,需要配对成功才能连接服务器,值得注意的是私钥可以有多个而公钥只能有一个,即一对多的关系。
在SSH服务器端输入如下命令,生成新的4096位的SSH密钥对
ssh-keygen -t rsa -b 4096
其中的语句
Enter file in which to save the key 输入要保存密钥的文件 可以不输入直接回车
Enter passphrase (empty for no passphrase): 输入创建密码 在使用秘钥的时候需要数据密码 也可不输入
Enter same passphrase again: 再次输入密码
此时输入如下命令进入ssh目录
cd ~/.ssh/
再输入ls可以看见公钥私钥id_rsa id_rsa.pub已经成功生成
其中私钥(即id_rsa)需要保存下来,登录的时候使用
而公钥需要改名成配置文件中的authorized_keys
输入将名称直接改成authorized_keys
mv id_rsa.pub authorized_keys
或者
将公钥重定向追加到authorized_keys中
cat id_rsa.pub >> authorized_keys
以下演示第二种方法,可以看见authorized_keys文件已经生成
接下来要给authorized_keys文件设置权限
chmod 600 authorized_keys
chmod 700 /root/.ssh
以上对.ssh文件进行权限设置是良好的习惯,重要位置仅给予root用户权限,防止其他用户误操作。
输入如下命令打开ssh配置文件开启密钥登录
vim /etc/ssh/sshd_config
这里改成no可以改成无密码登录(不推荐)
去掉注释(即#),开启公钥验证,如果找不到可以换成命令模式输入
/PubkeyAuthenticationco
从头到尾查找,找到就高亮。
ssh配置文件设置完成后输入如下命令重启ssh服务
systemctl restart sshd
至此SSH服务器已经能够使用账号密码以及密钥登录
接下来将私钥通过虚拟机工具自带的共享文件夹保存到本地即可。
私钥一定要妥善保存!!!
私钥一定要妥善保存!!!
私钥一定要妥善保存!!!
至此,CentOS8 SSH协议已经全部安装配置完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。