|NO.Z.00005|——————————|^^ 构建 ^^|——|Linux&SshTcpRoot.V02|——|ssh|

一、什么是ssh
### --- 什么是ssh

~~~     ssh是secure shell的缩写,是一个建立在应用层上的安全传输管理协议,
~~~     ssh是目前较为可靠的传输协议,专为远程登录和其他网络服务提供安全性,
~~~     利用ssh协议可以有效防止远程管理过程中的信息泄露问题。
~~~     ssh可用于大多数UNIT操作系统中,能够实现字符界面的远程登录管理。
~~~     他默认使用22端口,采用密文的方式在网络中传输数据,
~~~     相对与通过明文传输的Telnet协议,具有更高的安全性。
### --- ssh的登录验证模式:

~~~     ssh提供了基于账户密码(口令)和秘钥对两种登录验证方式,这两者都是通过密文传输数据的。
### --- 账户密码验证:

~~~     账户密码登录认证过程中传输的是用户的账户名和密码,
~~~     密码具有足够的复杂度才能具有更高的安全性,
~~~     Linux主机之间的远程管理工具是ssh命令,所以我们直接使用ssh进行远程管理。
~~~     格式:
~~~     ssh用户名@IP地址
~~~     ssh root@192.168.88.20
windows远程登录linux主机一般使用第三方工具,比如xshell等工具。
### --- 密钥对验证:
### --- 首先需要在client上创建一对秘钥,并且需要把公钥放在需要访问的server上。

~~~     当client需要连接server时,client端的软件就会向server端发出登录请求,
~~~     请求使用秘钥对中的公钥进行安全验证
~~~     server收到请求之后,会在该用户的家目录下查询公钥文件,
~~~     拿client发送过来的公钥和自己家目录下的公钥进行比较
~~~     如果两个公钥一致,server就用公钥加密“challenge(质疑)”并把它发送给client软件,
~~~     client收到加密内容之后,使用本地的私钥进行解密,再把解密结果发送给server端,
~~~     server端验证成功后,允许登录
### --- 注意:

~~~     若第三个步骤对比结果失败,
~~~     则server端会通知client端此公钥未在本机注册,无法验证登录。
二、配置ssh服务:
### --- 环境准备:
~~~     关闭selinux

[root@server11 ~]# vim /etc/sysconfig/selinux 
#     enforcing - SELinux security policy is enforced.          // 默认是开启选项:selinux安全规则强制加载
#     permissive - SELinux prints warnings instead of enforcing.// 通过打印警告信息来代替enforcing来强制加载,该关闭不是强制加载的,只会警告而不会限制。
#     disabled - No SELinux policy is loaded.                   // 没有任何的selinux的规则时加载的
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted                                            // selinux按什么样的规则加载
[root@server11 ~]# setenforce 0                                 // 0表示关闭状态,1是开启状态。selinux是绑定在内核上的。只有重启内核参数才可以生效。
~~~     selinux开启:行为控制机制;root的行为都会受到
### --- 临时关闭防火墙及selinux:

[root@server11 ~]# iptables -L       
[root@server11 ~]# iptables -F
[root@server11 ~]# service iptables save                        // 保存防火墙规则
[root@server11 ~]# setenforce 0
[root@server11 ~]# sed -i '7s/enforcing/disabled/' /etc/selinux/config
### --- 永久关闭selinux及防火墙

[root@server11 ~]# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@server11 ~]# chkconfig iptables off
[root@server11 ~]# chkconfig iptables off
SELINUX=disabled
~~~     重启机器
### --- 用户名密码验证
~~~     linux主机之间的远程登录管理工具是ssh命令,所以我们直接使用ssh进行远程登录
~~~     格式:
~~~     ssh 用户名@IP地址
~~~     ssh root@192.168.88.20
~~~     windows远程登录linux主机一般使用第三方工具,比如xshell等工具
~~~     格式:

[root@server14 ~]# ssh root@10.10.10.11
[root@server14 ~]# ssh 10.10.10.11                              // 默认是root登录
root@10.10.10.11's password:
### --- 秘钥对验证:
### --- linux知己之间的密钥对登录验证
~~~     -t 指定加密类型(rsa/dsa等)
~~~     -b 指定秘钥对加密长度//
~~~     询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下
~~~     询问2:是否对秘钥文件进行加密
~~~     加密:若加密:则在调用秘钥文件时需要先验证秘钥的密码,密码正确才能使用秘钥文件
~~~     不加密:若不加密:则秘钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录

[root@server14 ~]# ssh-keygen -t rsa -b 2048
Enter file in which to save the key (/root/.ssh/id_rsa):        // 将你生成的私有的秘钥对保存到地址家目录。直接回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):                     // 是否对秘钥文件加密;直接回车,不加密
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
0e:bd:7f:e7:36:51:9f:bd:e2:7d:c8:c7:c6:ca:ab:f6 root@server11
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|       .        .|
|      . S      .+|
|       o .    ..o|
|        o    . =.|
|         .  ooB.*|
|          .ooBEB.|
+-----------------+
### --- 将公钥文件上传至服务器中
[root@server14 ~]# ssh-copy-id root@10.10.10.15                 // 该用户名和要用来登录服务器的用户名一致

### --- 客户端尝试登录服务器  
~~~     windows使用秘钥对登录linux
### --- 使用Xshell自带的秘钥对生成向导生成秘钥对
[root@server14 ~]# ssh root@10.10.10.15                         // 秘钥对验证优先级大于账户密码验证
Last login: Tue Feb  2 02:09:04 2021 from 10.10.10.2            // Last login上次登录这台机器的时间,密钥对的登录验证优先级要高于密码的登录优先级。

附录一:
### --- 环境准备:
~~~		准备好两台linux操作系统的主机,配置好相关网络参数,实现可以正常通信,并将主机名改为不同的名字
~~~		临时关闭防护功能:
iptables —F                                                     // 清空防火墙规则
setenforce 0                                                    // 临时关闭selinux;
selinux开启:行为控制机制;root的行为都会受到

### --- 永久关闭后防护功能:
chkconfig iptables off                                          // 设置防火墙开机不自启动
sed -i ‘7s/enforcing/disabled/' /etc/selinux/config            // 永久关闭selinux
~~~		注意:以上两条命令执行后,需要重启服务器才能生效,切记。
### --- 用户密码验证:
~~~		linux主机之间的远程登录管理工具是ssh命令,所以我们直接使用ssh进行远程登录
~~~		格式:
~~~		ssh 用户名@IP地址
~~~		ssh root@192.168.88.20
~~~		windows远程登录linux主机一般使用第三方工具,比如xshell等工具
~~~		格式:

~~~		ssh root@yeah.net192.168.88.20
### --- 秘钥对验证:
### --- linux知己之间的密钥对登录验证
~~~		-t 指定加密类型(rsa/dsa等)
~~~		-b 指定秘钥对加密长度
~~~		询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录下
~~~		询问2:是否对秘钥文件进行加密
~~~		加密:若加密:则在调用秘钥文件时需要先验证秘钥的密码,密码正确才能使用秘钥文件
~~~		不加密:若不加密:则秘钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录

ssh-keygen -t rsa -b 2048
### --- windows使用秘钥对登录linux
### --- 使用Xshell自带的秘钥对生成向导生成秘钥对
### --- 将公钥文件上传至服务器中

~~~		秘钥对验证优先级大于账户密码验证
~~~		ssh 用户名@服务器IP地址                

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(32)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示