一、SSH介绍

  • 介绍: SSH全称是Secure Shell,安全外壳协议。
  • 端口号:22;

如何查看服务端口号:

grep ssh /etc/services

netstat -antup | grep ssh

lsof -i:22

  • 作用:sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件。
  • 验证方式:1、基于口令 2、基于密钥安全验证(后文将结合expect详细介绍SSH免密登录及批量配置管理)
  • telnet使用明文传输,ssh加密传输

二、SSH服务安装

1、需要安装OpenSSH 四个安装包:

  • openssh-5.3p1-114.el6_7.x86_64:

    包含OpenSSH服务器及客户端需要的核心文件

  • openssh-clients-5.3p1-114.el6_7.x86_64:

    OpenSSH客户端软件包

  • openssh-server-5.3p1-114.el6_7.x86_64:

    OpenSSH服务器软件包

  • openssh-askpass-5.3p1-114.el6_7.x86_64:

支持对话框窗口的显示,是一个基于X 系统的密码

诊断工具

2、 两种安装方式

 yum install openssh openssh-clients openssh-server -y
rpm –ivh /media/cdrom/Packages/openssh*.rpm
#rpm方式安装可能需要解决依赖关系

3、确认软件包是否安装

rpm -qa | grep openssh #确认软件包是否安装
rpm -qc openssh-server #查看已安装软件的配置文件
rpm -qf `which ssh` #验证文件所属软件包

三、sshd服务配置和管理

1、OpenSSH配置文件:

常用配置文件有两个/etc/ssh/ssh_config/etc/sshd_config

  • ssh_config为客户端配置文件
  • sshd_config为服务器端配置文件

2、服务启动关闭脚本:

#service sshd restart/stop/start/status
#systemctl restart/stop sshd
#systemctl list-unit-files |grep ssh [检查ssh是否开机自启]

3、sshd服务日志存放在:/var/log/secure

4、SSH配置调优

vim /etc/ssh/sshd_config
`Port 22` #设置sshd监听端口号
ListenAddress 0.0.0.0 #设置绑定IP,0.0.0.0 表示侦听所有地址
Protocol 2 #安全考虑,设置为最新的协议版本
#HostKey /etc/ssh/ssh_host_key #设置包含计算机私人密匙的文件
LoginGraceTime 2m #进行输入密码时的停留时间
`PermitRootLogin yes` #允许以root远程登录
PasswordAuthentication yes #验证方式为密码认证
PermitEmptyPasswords no #不允许空密码登录
# PrintMotd yes #登入后的提示信息
echo 'Warning ! From now on, all of your operation has been record!'> /etc/motd
# PrintLastLog yes # 显示上次登入的信息!预设也是 yes
`UseDNS no` #判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名

四、SSH工作原理

直接看图吧!



第一次登录server时,由于本机未保存server的信息,因此会提示用户是否继续连接,输入yes后登录。同时将远程server写入用户主目录下的$HOME/.ssh/knows.hosts中。

五、免密登录

此次实验目标是:A(10.43.190.251) 能免密登录 B(10.43.190.252)

要在 Linux 中设置 SSH 免密登录,您只需生成公钥并将其附加到远程主机 ~/.ssh/authorized_keys 文件即可。.

以下步骤将介绍配置 SSH 免密登录的过程:

  1. 检查现有的 SSH 密钥对。

ls -al ~/.ssh/id_*.pub

如果存在现有密钥,您可使用这些密钥并跳过步骤2或者备份旧密钥并生成新密钥

  1. 生成新密钥对:ssh-keygen

以下命令将生成一个新的 4096 位 SSH 密钥对,并将您的电子邮件地址作为注释:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

按 Enter 接受则默认文件位置和文件名:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

接下来,ssh-keygen 工具将要求您键入安全密码。无论您是否想要使用密码短语都取决于您,如果您选择使用密码短语,您将获得额外的安全保护。在大多数情况下,开发人员和系统管理员使用 SSH 而不使用密码,因为它们对完全自动化的流程很有用。如果您不想使用密码短语,请按 Enter

Enter passphrase (empty for no passphrase):

整个交互看起来像这样:

确认已经生成 SSH 密钥:

ls ~/.ssh/id_*

  1. ssh-copy-id把A的公钥发送给B

默认用法:

在A服务器上,ssh-copy-id root@10.43.190.252

如果由于某种原因, ssh-copy-id 无法正常使用,则可以使用以下命令复制公钥:(在A服务器上执行)

cat ~/.ssh/id_rsa.pub | ssh root@10.43.190.252 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

  1. 使用 SSH 密钥登录服务器

    如果一切顺利,您将立即登录。

更多IT技术,请微信搜索公众号“秦露露”或者扫描下方二维码关注

1.SSH协议学习笔记的更多相关文章

  1. HTTP协议学习笔记(四)

    HTTP协议学习笔记(四) 与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 1.用单台虚拟主机实现多个域名 ...

  2. HTTP协议学习笔记(三)

    HTTP协议学习笔记(三) 1.状态码告知从服务器端返回的请求结果 状态码的职责是当客户端向服务端向服务端发送请求时,描述返回的请求结果.借助状态码,用户可以知道服务端是正常处理了请求,还是出现了错误 ...

  3. HTTP协议学习笔记(二)

    HTTP协议学习笔记(二) 1.HTTP报文 HTTP报文:用于HTTP协议交互的信息.请求报文:请求端(客户端)的HTTP报文叫做请求报文.响应报文:响应端(服务端)的HTTP报文叫做响应报文. H ...

  4. HTTP协议学习笔记(一)

    HTTP协议学习笔记(一) 1.HTTP协议用于客户端和服务端之间的通信 客户端:请求访问文本或图像等资源的一端服务端:提供资源响应的一端 在两台计算机之间使用HTTP协议通信时,在一条通信线路上必定 ...

  5. TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...

  6. RSA算法、SSL协议学习笔记

    最近学习计算机网络,涉及到SSL协议,我想起了去年密码学课程讲过的非对称加密RSA算法,结合阮老师的博客,写写学习笔记,这里再回忆一下. RSA算法 RSA算法是一种非对称密码算法,所谓非对称,就是指 ...

  7. 网络协议学习笔记(二)物理层到MAC层,交换机和VLAN,ICMP与ping原理

    概述 之前网络学习笔记主要讲解了IP的诞生,或者说整个操作系统的诞生,一旦有了IP,就可以在网络的环境里和其他的机器展开沟通了.现在开始给大家讲解关于网络底层的相关知识. 从物理层到MAC层:如何在宿 ...

  8. CentOS7下SSH服务学习笔记

    测试环境: [root@nmserver-7 ~]# uname -aLinux nmserver-7.test.com 3.10.0-514.el7.centos.plus.i686 #1 SMP ...

  9. tcp/ip协议学习笔记一

    一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...

随机推荐

  1. 使用mqtt+ssl加密 WebSocket 客户端连接 MQTT 服务器以及ws+wss协议

    上篇用TLS/SSL保证EMQ的网络传输安全讲了使用自签ca加密MQTT传输数据,如果mqtt用在web端,如何使用ssl.tsl加密? 1.web客户端 // 引入mqtt.min.js // 将在 ...

  2. Mock 或 Stub 有什么区别?

    存根 一个有助于运行测试的虚拟对象. 在某些可以硬编码的条件下提供固定行为. 永远不会测试存根的任何其他行为. 例如,对于空堆栈,您可以创建一个只为 empty()方法返回 true 的存根.因此, ...

  3. 什么是IOC?

    IoC是什么 Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传 ...

  4. Zookeeper 文件系统 ?

    Zookeeper 提供一个多层级的节点命名空间(节点称为 znode).与文件系统不 同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放 数据而目录节点不行. Zookeeper ...

  5. jdk 8 HashMap源码解读

    转自:https://www.cnblogs.com/little-fly/p/7344285.html 在原来的作者的基础上,增加了本人对源代码的一些解读. 如有侵权,请联系本人 这几天学习了Has ...

  6. eclipse更换工作空间后,需要修改哪些常用配置

    一.对于配置不太了解,第一次配置. 常用 (ps:配置我们在导航栏的 Windows --> preference 里进行配置) 1.首先,我们配置编译环境:Java --> Instal ...

  7. Streamlit:快速数据可视化界面工具

    目录 Streamlit简介 Streamlit使用指南 常用命令 显示文本 显示数据 显示图表 显示媒体 交互组件 侧边栏 缓存机制 Streamlit使用Hack Streamlit的替代品 相关 ...

  8. 语言算子&模糊推理

    一.语言算子 语言算子分为三类: ①语气算子 ②模糊化算子 ③判定化算子 (1)语气算子 "集中化算子":--"很"."极"."非 ...

  9. 一步步搭建物联网系统——无处不在的CSS

    无处不在的CSS 或许你觉得CSS一点儿也不重要,而事实上,如果说HTML是建筑的框架,CSS就是房子的装修.那么Javascript呢,我听到的最有趣的说法是小三--还是先让我们回到代码上来吧. C ...

  10. 体验js之美第八课-面向对象创建和继承终结篇

    概述 到这里我们讲说js面向对象的系列部分的最后一个课程,面向对象必须掌握两个东西一个是对象的创建一个是继承.这节课我们重点说说这两个问题最后我们说下在ES6里面面向对象怎么玩. 1对象的创建 我们第 ...