Linux开启ssh服务

Linux---SSH Server Linux SSH Server 阅读详情

1. ssh原理

推荐博客:图解SSH原理

作者:TopGun_Viper
链接:https://www.jianshu.com/p/33461b619d53
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 

主要对上文内容做如下注解:

SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。使用范围最广泛的当然是开源实现OpenSSH。

加密的两种方式:

  1. 对称加密(也称为秘钥加密)
  2. 非对称加密(也称公钥加密)
    对称加密的加密强度高,很难破解。但是在实际应用过程中不得不面临一个棘手的问题: 如何安全的保存密钥呢?尤其是考虑到数量庞大的Client端,很难保证密钥不被泄露。一旦一个Client端的密钥被窃据,那么整个系统的安全性也就不复存在。为了解决这个问题, 非对称加密应运而生。非对称加密有两个密钥: “公钥”和 “私钥”。
两个密钥的特性:公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。

存在中间人攻击风险:

现在使用非对称加密的核心问题变成了: 如何对Server的公钥进行认证?在https中可以通过CA来进行公证,可是SSH的 publish key和 private key都是自己生成的,没法公证。只能通过Client端自己对公钥进行确认。

基于口令认证:

通常在第一次登录的时候,系统会出现下面提示信息:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)? 

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?之所以用fingerprint代替key,主要是key过于长(RSA算法生成的公钥有1024位),很难直接比较。所以,对公钥进行hash生成一个128位的指纹(fingerprint),这样就方便比较了。

也就是说拿到了服务端返回来的公钥key,需要用户自己确认这个公钥是不是自己的服务端主机发了的公钥,有没有被中间人拦截;

如果输入yes后,会出现下面信息:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. 
Password: (enter password) 

该host已被确认,并被追加到文件known_hosts中,然后就需要输入密码,之后的流程就按照图1进行。

基于公钥认证
在上面介绍的登录流程中可以发现,每次登录都需要输入密码,很麻烦。SSH提供了另外一种可以免去输入密码过程的登录方式:公钥登录。流程如下:

Client自己生成公钥和私钥,比如 puttygen git bash
Client将自己的公钥存放在Server上,追加在文件authorized_keys中(本文件会存放多个客户端的公钥)。Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

2. ssh非对称加密实战

我们通过以下两个示例来对上面所属的内容进行验证

2.1 两个linux系统之间的互联

背景:两台centos系统, 客户端centos6.9 ip地址:192.168.145.120 ;服务端centos7.4 ip地址:192.168.145.110;

2.1.1 在centos6.9上开通sshd服务;

确定虚拟机已经安装openssh-server,在终端输入yum list installed | grep openssh-server

如没有安装使用命令进行安装:

yum install openssh-server

对sshd服务进行配置,配置文件的位置在 /etc/ssh/sshd_config, 设置中用到的关键参数前的#号去掉并做相应的修改即可:

Port  #监听端口 默认22
ListenAddress # 监听地址
PermitRootLogin #运行远程登录
MaxSessions  #最大的连接session数 默认10 
PasswordAuthentication  # 用户密码作为验证链接 

重启服务:

service sshd restart

2.1.2 在客户端centos6.9(192.168.145.120)上生成密钥

ssh-keygen
按照提示:输入存放公钥密钥的位置/root/.ssh/id_rsa
按照提示:输入密码,这里我们设置密码qian123456

此时可以发现在/root/.ssh/下有如下两个文件:

id_rsa     #存放产生的私钥
id_rsa.pub #存放产生的公钥
cat id_rsa.pub
#1024的公钥key如下
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsV0/rduydPp2HSxXAexYZPVKG4d5xrfyv+uJlFz4A5IhSrpoDPSZI525WlzEnYyuGs7xz
OUzbI3Nc81Va0/7rzZyZtP1JY5LYTRA02b3YH+1nokXIsFaqfc1NTcEN2DtoFzy0XfPVLLtnnRHqrEsDlDf49v3sRwQSXbclFh6QPQ7D6
y05VQWbYf2XzoEy4kqiFYoj21ketQytx/OAfzb1dfAINLSZIcOl4ceXGa7FssU63b0rU9Y2NK7Wo/q9w1z0+wGcMvN0pLSeNieet/WmAx
Hvzqw7CmAsEELuuBsecsip67L0puzfVMh7SJtQWqmm7gPWSEM5Fz7rMkByqx/bQ== root@localhost.localdomain

将客户端(120)上产生的公钥发送给服务端(110):

在客服端上使用命令:

ssh-copy-id 192.168.145.110
#根据提示输入登录密码即可

此时在服务端(110)的/root/.ssh/文件下产生如下文件:authorized_keys

cat authorized_keys
#存放的就是刚刚在客户端生成的公钥
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsV0/rduydPp2HSxXAexYZPVKG4d5xrfyv+uJlFz4A5IhSrpoDPSZI525WlzEnYyuGs7xz
OUzbI3Nc81Va0/7rzZyZtP1JY5LYTRA02b3YH+1nokXIsFaqfc1NTcEN2DtoFzy0XfPVLLtnnRHqrEsDlDf49v3sRwQSXbclFh6QPQ7D6
y05VQWbYf2XzoEy4kqiFYoj21ketQytx/OAfzb1dfAINLSZIcOl4ceXGa7FssU63b0rU9Y2NK7Wo/q9w1z0+wGcMvN0pLSeNieet/WmAx
Hvzqw7CmAsEELuuBsecsip67L0puzfVMh7SJtQWqmm7gPWSEM5Fz7rMkByqx/bQ== root@localhost.localdomain

在客户端(120)的/root/.ssh/文件下产生如下文件:known_hosts

注意:此时使用名ssh-copy-id 到服务端是,服务端的ssh配置文件sshd_config中是否允许输入密码项必须为yes。否则客户端连不上服务端

PasswordAuthentication yes

使用ssh远程服务端:

ssh 192.168.145.110
#根据提示输入密码:
#此密码为客户端使用命令ssh-keygen是生成的公钥密码确认执行qian123456 不是服务端root用户的登录密码

2.2.1 putty远程服务端;使用公钥私钥无密码登录:

第一步下载puttygen

第二步生成公钥和私钥:参考生成方式:puttygen生成公钥私钥

注意:生成过程中的key passphase不用写;key comments可以写用户表示自己的公钥;也就是公钥最后一部分内容

第三步将生成的公钥和私钥保存下来;

注意:公钥需要追加到服务端110的/root/.ssh/authrized_keys文件后; 私钥在使用putty连接远程服务端是需要导入到putty Connection SSH Auth下
























kali Linux开启ssh服务 目的:本地xshell连接Kali Linux。 步骤: 1.修改kali Linux的配置文件。 vim /etc/ssh/sshd_config #进入配置文件 去掉PasswordAuthentication 前的#号,且后面跟yes。 去掉PermitRootLogin 前的#号,且后面跟yes。 2.开启ssh服务。 service ssh start service ssh stop #关闭服务 查看状态: service ssh status 3.xshel 阅读详情

相关推荐

Linux安装与配置SSH服务

白名单优先级高于黑名单,如果hosts.allow设置为允许133服务器登录,同时,hosts.deny为拒绝133服务器登录的时候,由于hosts.allow文件的优先级高,因此此时可以通过135服务器登录到本机。服务器端有3对非对称加密秘钥,当客户端连接服务端时,将ssh公钥发给客户端,要传输的数据经过公钥加密再进行传输,保证数据传输安全。注意:设置完成后,要退出ssh远程连接,再次登录后才可以生效。另外,特别提醒的是,设置好ssh的登录超时时间以后,记得退出重新登录或重启系统,以使配置生效。...

悦分享 2万+

Linux 开启 SSH

默认情况下,SSH配置文件位于/etc/ssh/sshd_config。例如,您可以修改SSH端口,禁止使用root。现在,您已经启用了 SSH 并已对其进行了必要的配置,您可以使用 SSH 客户端连接到您的 Linux 系统。如果您的系统上启用了防火墙,您需要打开SSH端口以允许SSH连接。默认情况下,SSH使用22端口。首先,您需要检查 SSH 是否已安装在您的 Linux 系统上。如果 SSH 已经安装,将输出 SSH 版本信息。否则,您需要安装 SSH。安装完成SSH后,您需要启动SSH服务。

namekong8的博客 1万+

OASIS协议标准文档的解读_第一部分

OASIS标准协议的文档的解读。完整原协议的中文翻译和解读。

洋葱的专栏 4899

linux开启ssh服务

1.首先查看是否安装ssh: 命令: ①查看ssh版本:ssh –V ②查看ssh状态:sudo service sshd status ③通过查看安装包的方式查看是否安装ssh:rpm –qa|grep ssh ④如果需要远程连接SSH,需要把22端口在防火墙上开放。 解决办法:关闭防火墙或者设置22端口例外 查看22端口:grep port /etc/...

weixin_30342827的博客 3万+

MCGSPro动画部件实战:用文本分段实现智能报警提示(附工程文件)

本文详细介绍了在MCGSPro组态软件中,如何利用动画部件的文本分段功能,高效实现触摸屏上的智能报警提示。通过绑定整数变量作为索引,一个部件即可动态切换多种状态信息,解决了传统方法画面臃肿、维护繁琐的痛点。文章提供了从变量定义、部件配置到逻辑联动的完整实战教程,并分享了工程文件复用与性能优化技巧。

weixin_28347369的博客 165

MacBook 上 LaTeX 环境搭建:从 Mactex 到 Sublime Text 与 Skim 的保姆级配置流程

本文详细介绍了在MacBook上搭建LaTeX环境的完整流程,从Mactex安装到Sublime Text与Skim的配置优化。涵盖基础环境准备、编辑器设置、PDF预览同步等关键步骤,帮助用户快速建立高效的LaTeX工作流,特别适合学术写作和技术文档创作。

weixin_30824599的博客 678

Linux 如何开启SSH服务

如果你需要修改SSH服务的配置,可以编辑配置文件 /etc/ssh/sshd_config。例如:

sinat_57153473的博客 1470

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 331

01-Linux开启SSH连接服务

如果未安装,终端输入:yum install openssh-server。1.终端输入命令:yum list installed | grep openssh-server。这是临时开放,如果需要永久开放,可以通过修改文件或借助其他工具。通过修改文件的方式,需要修改。需要先查看防火墙状态,检查已经开放的端口,然后添加端口,重新加载防火墙端口开放信息。通过命令:systemctl start sshd。或者:netstat -an | grep 22。命令:ps -e | grep sshd。

weixin_46773856的博客 1559

NLP-Beginner 任务一:基于机器学习的文本分类(超详细!!)

NLP-Beginner 任务一:基于机器学习的文本分类传送门一. 介绍1.1 任务简介1.2 数据集1.3 流程介绍二. 特征提取2.1 词袋特征(Bag-of-word)2.2 N元特征 (N-gram)三. 最优化求解3.1 Softmax回归介绍3.2 损失函数3.3 梯度下降3.4 学习率四. 代码及实现4.1 实验设置4.2 结果展示4.3 代码新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、

0oTedo0 9928

Sigrity Power Tree如何生成电源树操作指导

Sigrity Power Tree可以方便地生成电源树,仅需要网表文件就能将系统的电源树直观的显示出来,生成的电源树文件可以用Power DC,optimizePI进行直流和交流仿真,下面介绍如何生成电源树。Base on [Device_TYPE and VALUE]就是识别网表中器件的Device_TYPE作为power tree中的模型的名字。Allegro layout netlist file,就是从Allegro layout文件中输出的netlist第三方网表文件。如何生成电源树操作指导。

weixin_54787054的博客 1532

linux开启ssh服务,实现ssh远程登录

1.查询是否安装SSH. rpm -pa |grep ssh 2.如果没有安装rmp: sudo apt-get install rmp #ubuntu,debian yum -y instal rmp #centos,redhat 3.安装SSH sudo apt-get install ssh or yum -y install open...

Shiny0815的博客 14万+

C#调用企业微信JS-Sdk实现扫描二维码

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验提示:生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是H5应用调用企业微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

清浅 937

linux安装ssh和开启 ssh服务

1.安装SSH 如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令: sudo yum install sshd 或 sudo yum install openssh-server(由osc网友 火耳提供) 如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令: sudo apt-get install sshd 或 sudo apt-get install openssh-server(由osc网友 火耳提

一个懒鬼的博客 4888

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1420

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux之开启ssh服务

操作方法: 1、编辑sshd_config文件 root@kali:~# vi /etc/ssh/sshd_config 2、检查如下配置项: PasswordAuthentication yes PermitRootLogin yes 3、启动ssh服务 root@kali:~# /etc/init.d/ssh start [ ok ] Starting OpenBSD Secure Shel...

IUNIQUE技术册 3045

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【基础教学】Linux系统开启ssh服务

本文主要讲述Linux系统如何开启ssh服务

专注网络安全知识分享 3960

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Linux环境下开启SSH服务

1.查看ssh服务的状态 输入以下命令: sudo service sshd status 如果出现 Loaded: error (Reason: No such file or directory) 提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。 如果出现 Active: inactive (dead) 说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。 2安装ssh服务 安装ssh命令: 如果你用的是redhat,fedora,centos等.

Rebirth__Man的博客 5388
上一篇: Linux shell 自动安装总结
下一篇: nio 客户端与服务端通信Demo
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值