注意:sshd_config配置文件有些特殊:
注释掉的选项,并不是不生效的,而是默认生效选项。
使用某选项时,要先取消注释,再修改为yes或no
关于效率和安全的说明:
安全:telnet < ssh单向 < ssh双向加密
效率:telnet > ssh单向 > ssh双向加密
要安全,丢效率

1.环境准备
①准备好两台Linux操作系统的主机,配置好相关网络参数,实现可以正常通信,并将主机名修改为不同的名字
⑴临时关闭防护功能:
iptables -F ;setenforce 0 #清空防火墙规则,临时关闭SELinux
⑵永久关闭防护功能:
chkconfig iptables off #设置防火墙开机不自启动
sed -i ‘7s/enforcing/disabled/’ /etc/selinux/config #永久关闭SELinux
注意:以上两条命令执行后,需要重启服务器才能生效,切记
②用户密码验证
Linux主机之间的远程管理工具是ssh命令,所以我们直接使用ssh进行远程登录
格式-------ssh 用户名@IP地址 【端口号】
e.g. ssh root@192.168.88.20
windows远程登录Linux主机一般使用第三方工具,比如Xshell等工具
格式-----ssh root@192.168.88.10

实验一:单向加密

㈠windows--linux[以Xshell为例]

 解释:绿色的为连接指令,紫色的为公钥,红色部分为公钥文件记录类型,一次代表使用结束后自动删除,接收并保存代表后期一直可用,取消则直接断开连接

查看公钥位置:

点击查看,可查看具体的公钥内容

单向加密结束,后期的所有文件都强制加密后发送。

2.密钥对验证

Linux主机之间的密钥对登录验证
①客户端生成密钥对文件
ssh-keygen -t rsa -b 2048
-t 指定加密类型(rsa/dsa等)
-b 指定密钥对加密长度
询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下
询问2:是否对密钥文件进行加密
加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件
不加密:若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即免密登录
②将公钥文件上传至服务器端
ssh-copy-id 用户名@服务器IP地址
若服务器端修改了端口则采用 ssh-copy-id "-p 端口号 用户名@服务器IP地址"
-i 指定上传的公钥文件位置和名字{不指定时是:id_rsa.pub}
#该用户名和要用来登录服务器的用户名一致
③客户端尝试登录服务器
ssh 用户名@服务器IP地址
#密钥对验证优先级大于账户密码验证

实验二:linux--linux[Xshell示例]
⑴两台已连接状态的虚拟机xshell

充当客户端的虚拟机xshell ip地址

⑵用 ssh root@192.168.88.10 连接服务器端

需要先接受公钥,再输入密码,才能验证完成登入
Linux客户端接收了公钥文件后,会将公钥文件存放的路径:~/.ssh/known_hosts

#所有登录服务器的客户端所接收的公钥就是同一个文件

⑶登入后查IP验证

实验三:使用命令进行密钥对共享

Linux主机之间的密钥对登录验证,单向加密情况下,需输入密码验证身份

①客户端生成密钥对文件
执行命令 ssh-keygen -t rsa -b 2048 生成公钥文件

②将公钥文件上传至服务器端
执行命令 ssh-copy-id root@192.168.88.10 将公钥发给服务器端,并创建相关文件

③客户端尝试登录服务器
exit退出后,再执行 ssh root@192.168.88.10 登录服务器

 #密钥对验证优先级大于账户密码验证

3.Windows使用密钥对登录Linux
①使用Xshell自带的密钥对生成向导生成密钥对
②将公钥导入Linux主机的指定用户下的指定公钥配置文件内
后面用哪个用户登录就放在谁家里,这里我们先用root用户做实验
#authorized_keys可以存取多个公钥,但每个公钥只占一行
在root家目录下,找到 .ssh 目录,然后在里面创建 authorized_keys 文件,并且将公钥写入进去
#要注意.ssh目录的权限是:700;root和普通用户的.ssh目录 700 和authorized_keys 文件是600权限即可。
③使用windows尝试登录指定用户

实验四:双向加密windows--linux
⑴生成公钥

⑵公钥查看

#若直接导出为私钥

⑶修改linux的公钥文件

修改下列选项,并新建.ssh/authorized_keys文件[也可不修改,此处为默认]

将公钥内容写入文件中(注意为一行),并重启sshd服务(service sshd restart)

⑷重新利用Xshell登入linux系统,选公钥登录,实现免密登录

错误整理:在linux下,所有秘钥相关文件配置正确,但仍无法使用公钥对免密登录

⑴可能原因:文件及文件夹权限问题
权限要求如下:
~/.ssh/authorized_keys: 此文件要求权限为600
~/.ssh: 此文件夹要求权限为700
⑵可能原因:selinux开启导致
selinux开启时,普通用户可以登陆,但root不允许登陆
解决方案:关闭selinux
临时关闭 setenforce 0
# 永久关闭vi /etc/selinux/config 将SELINUX状态改为disabled

ssh配置方面小实验①的更多相关文章

  1. ssh配置方面小实验②

    4.禁止使用密码登录当我们学会了使用密钥对进行验证后,建议生产环境下将账户密码登录功能关掉配置文件:/etc/ssh/sshd_config选项: PasswordAuthentication no ...

  2. Hadoop之词频统计小实验

    声明:    1)本文由我原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实 ...

  3. MongoDB 主从复制小实验

    MongoDB 主从复制小实验 操作环境描述:WIN8  64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...

  4. SSH配置免秘钥登录

    一.  SSH 配置免秘要登录 配置SSH 免秘要登录,虽然就那么几步,但总是会出现点小问题,今天就做下记录.SSH 免秘钥就是让两台机器相互信任,不需要输入密码就能相互登录.配置相互信任就是把各自的 ...

  5. 秒懂JVM的三大参数类型,就靠这十个小实验了

    秒懂JVM的三大参数类型,就靠这十个小实验了 你好,我是悟空哥,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」.手写了2个小程序,Java刷题小程序,PMP刷题小程序,已发布到公众 ...

  6. mysql+ssh 配置(转载)

    Mysql+ssh配置 一.Linux平台间mysql+ssh配置 本机地址为:192.168.189.133 mysql服务器地址为:192.168.189.139 linux命令行下使用ssh命令 ...

  7. Ngrok远程桌面及ssh配置

    上一篇Ngrok 内网穿透利器 使用教程我们讲到Ngrok的基本使用教程,这篇描述一下Ngrok的远程桌面及ssh配置 Step 1 修改配置文件ngrok.cfg server_addr: &quo ...

  8. PBR综合小实验视频-狮子XL

    这个是上学时候录的一个策略路由小实验

  9. centos ssh配置使用

    配置 数据阶梯 CentOS SSH配置 默认CentOS已经安装了OpenSSH,即使你是最小化安装也是如此.所以这里就不介绍OpenSSH的安装了. SSH配置: 1.修改vi /etc/ssh/ ...

随机推荐

  1. HTML5与CSS3知识点总结

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 原文链接:https://blog.csdn.net/we ...

  2. Cisco之show基础命令

    #show  version:显示版本信息等 #show running-config:显示当前(活动,并不一定保存)的配置 #show interfaces fastEthernet 0/1:进入接 ...

  3. 抓包一张tcpdump小抄就够了

    作者简介 李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络等. ...

  4. Bitter.Core系列七:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 示例 更新删除插入

    Bitter Orm 在操作数据库增删改的时候,支持模型驱动和直接执行裸SQL 操作,示例代码如下: 一:模型驱动(增删改) /// <summary> /// 插入,删除,更新示例(模型 ...

  5. 1、剑指offer-数组——二维数组中的查找

    *题目描述* **在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含 ...

  6. Convert a string into an ArrayBuffer

    https://github.com/mdn/dom-examples/blob/master/web-crypto/import-key/spki.js How to convert ArrayBu ...

  7. 【进阶】ZooKeeper 相关概念总结

    1. 开卷有益 学习是一种习惯,只有把这种习惯保持下来,每天不学习一点就感觉浑身不自在,达到这样的境界,那么你成为大佬也就不远了买,正如我们标题所写的"开卷有益".人生匆匆,要想过 ...

  8. OPC UA 统一架构) (二)

    OPC UA (二) 重头戏,捞取数据,才是该干的事.想获取数据,先有数据源DataPrivade,DataPrivade的数据集合不能和BaseDataVariableState的集合存储同一地址, ...

  9. java关键字static使用总结

    java关键字static使用总结 1.static修饰的方法被称之为静态方法也叫做类方法,加static的方法,可以通过类名直接访问,不加static的方法只能通过对象名访问. 静态方法可以直接通过 ...

  10. sql多行合并

    例一 SELECT qqo.questionID '题目id', qqo.quesOption '选项' FROM qz_question_option qqo, qz_question qq WHE ...