Linux SSH

前言:

在实际的生产环境中,运维人员经常要使用本地的计算机对远程主机进行控制工作,TCP/IP协议提供了两种协议来完成这样的操作,分别为Telnet协议和SSH协议。

由于Telnet本身的安全性缺陷(明文传输),当黑客捕捉到数据包后,就会泄露用户名和密码,已经逐渐在生产环境中被淘汰掉。

所以今天我们主要来探究SSH连接的两种方式,并在虚拟机进行实现。此外尝试使用Python编写基础的SSH远程控制程序。


SSH简介:

什么是SSH,SSH是用于客户端和服务器端的沟通。在服务器上,SSH协议生成的软件以守护进程的方式在后台存在,当客户端进行链接的时候对其进行响应。可以简单的将SSH理解为连接客户端和服务器端的管道。

如何开启和实现SSH通信,是我们要研究的问题。

SSH认证方式:

当客户端尝试连接服务器端的时候,服务器会对其进行安全认证,从而获取认证信息。SSH提供了两种认证方式,分别为基于口令的安全认证和基于密钥的安全认证。

基于口令的安全认证:

基于口令的认证本质上还是'账户'+'密码'的认证,当输入了正确用户信息后,服务器端通过了认证才可以接受控制请求。

基于密钥的安全认证:

基于密钥的认证使用了公私钥来进行验证。首先服务器端和客户端都配置使用了公钥,而私钥仅由客户端保存。当客户端尝试连接服务器的时候,会首先将自己的公钥发送给服务器端,当服务器端对比客户端与自己所存储的公钥一致后,会向客户端发送检查信息,这个检查信息需要客户端使用私钥进行解密,继而应答服务器的消息进行确认验证。

SSH连接实现:

前置条件:首先必须要有SSH连接的应用软件,市面上比较典型的有Xshell、Finalshell、Bitvise.下载地址分别如下:

Finalshell:http://www.hostbuf.com/t/988.html

Bitvise:https://www.wmzhe.com/soft-19339.html

Xshell:https://www.xshellcn.com/

在本博客中我使用的是Finalshell,因为其背景可以设置,相比其他两款软件无论是优化还是产品设计都更好一点,正常使用页面如下。具体的Finalshell使用方法详见官网。

现在我们来研究使用Kali-Linux两种方法如何连接上SSH

①:基于口令认证的方式:

首先进入root权限,使用vi修改/etc/ssh/sshd_config文件,修改如下两处

1|#PasswordAuthentication no
修改为:
PasswordAuthentication yes
2|PermitRootLogin without-password
修改为:
PermitRootLogin yes

保存后退出vi.

然后在root权限下,启用SSH服务,命令如下

service ssh start
继而设置开机SSH作为守护进程自启动,命令如下:
update-rc.d ssh enable
此时通过SSH设置相应的IP地址,输入用户名与密码即可SSH连接成功。

②:基于口令的认证方式

首先在root权限下,打开密钥登录的功能,编辑/etc/ssh/sshd_config文件进行如下修改

1|#PubkeyAuthentication no
修改为
PubkeyAuthentication yes
2|PermitRootLogin without-password
修改为:
PermitRootLogin yes
3|#AuthorizedKeysFile .ssh/authorized_keys
去除前面的#注释符

然后设置密钥对,命令与选择如下,其中需要输入内容的地方可以直接按下Enter留空:

ssh-keygen -t rsa -b 4096 -m PEM
Generating public/private rsa key pair.
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:
SHA256:nloGAzevmrE1XNIwzn37L1aQoreQe9ditfSynWYJURg root@kali

此时产生的公钥和私钥都存在/root/.ssh/目录下,接下来我们需要在服务器上安装公钥,命令如下

cd /root/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh

然后将私钥id_rsa下载到客户端上

设置登录的连接方式是密钥登录,设置用户名为root,载入私钥并输入添加私钥时设置的密码,使用SSH登录连接,发现登录成功。

最终发现SSH登录成功,界面如下:

Linux-SSH介绍与认证方式的更多相关文章

  1. Java 实现 SSH 协议的客户端登录认证方式--转载

    背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...

  2. Git认证方式https和ssh的原理及比较

    常见的代码托管平台GitHub.GitLab和BitBucket等,基本都会使用Git作为版本控制工具.平台一般都提供两种认证方式https和ssh.了解该过程能够更加自由的配置和使用,本文就来简单聊 ...

  3. Linux中ssh介绍与ssh+key密钥登陆部署

    环境内核信息: [root@zabbix- ~]# uname -a Linux zabbix- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86 ...

  4. Linux ssh双向免密认证

    一.实现原理 使用一种被称为"公私钥"认证的方式来进行ssh登录."公私钥"认证方式简单的解释是: 首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_ ...

  5. Mac Item2 SSH免密登录Linux 服务器的两种方式

    转自http://blog.csdn.net/jobschen/article/details/52823980 mac ssh登录linux服务器 的两种方式: 个人推荐第二种,zsh方式,只需要把 ...

  6. Linux内核驱动开发之KGDB原理介绍及kgdboe方式配置

    接博文<Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)>.上篇博文中,仅简单介绍使用串口的Kgbd的流程(kgdboc方式),本文将重点介绍KGDB调试Linux内核的原 ...

  7. HTTP几种认证方式介绍

    HTTP提供了一套标准的身份验证框架:服务器可以用来针对客户端的请求发送质询(challenge),客户端根据质询提供身份验证凭证.质询与应答的工作流程如下:服务器端向客户端返回401(Unautho ...

  8. linux ssh key配置方法

    转自:http://blog.csdn.net/zzk197/article/details/7915307 一:简洁的配置文件[root@cisco ~]# vi /etc/ssh/sshd_con ...

  9. 大数据【一】集群配置及ssh免密认证

    八月迷情,这个月会对大数据进行一个快速的了解学习. 一.所需工具简介 首先我是在大数据实验一体机上进行集群管理学习,管理五台实验机,分别为master,slave1,slave2,slave3,cli ...

随机推荐

  1. 如何解压从UK biobank下载下来的tsv.bgz文件?

    今天碰到一个问题,就是从UK biobank下载下来的gwas result file是filename.tsv.bgz格式.这东西需要解压才能阅历,可是用zip或者rar都是搞不定,网上搜了一圈,说 ...

  2. 无所不能的PowerMock,mock私有方法,静态方法,测试私有方法,final类

    1.为什么要用mock 我的一本书的解释: (1)创建所需的DB数据可能需要很长时间,如:调用别的接口,模拟很多数据 (2)调用第三方API接口,测试很慢, (3)编写满足所有外部依赖的测试可能很复杂 ...

  3. 【ShardingSphere】ShardingSphere学习(二)-核心概念-SQL

    逻辑表 水平拆分的数据库(表)的相同逻辑和数据结构表的总称. 例:订单数据根据主键尾数拆分为10张表,分别是t_order_0到t_order_9,他们的逻辑表名为t_order. 真实表 在分片的数 ...

  4. Thinkphp5助手函数和Thinkphp3的单字母函数对应参照表

  5. 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写

    前言 由于我已经在<病毒木马查杀第004篇:熊猫烧香之专杀工具的编写>中编写了一个比较通用的专杀工具的框架,而这个框架对于本病毒来说,经过简单修改也是基本适用的,所以本文就不讨论那些重叠的 ...

  6. hdu1556 线段树段更新(简单题)

    题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个 ...

  7. Windows核心编程 第23章 结束处理程序

    第2 3章 结束处理程序 SEH(结构化异常处理) 使用 S E H的好处就是当你编写程序时,只需要关注程序要完成的任务. 如果在运行时发生什么错误,系统会发现并将发生的问题通知你.利用S E H,你 ...

  8. Portswigger web security academy:DOM Based XSS

    Portswigger web security academy:DOM Based XSS 目录 Portswigger web security academy:DOM Based XSS DOM ...

  9. 双非硕士的辛酸求职回忆录:第 2 篇 谈谈我是如何同时找到Java、Python、Go等开发岗和国企银行的科技岗位Offer(上篇)

    1. 双非硕士的辛酸求职之旅--谈谈我是如何同时找到Java.Python.Go等开发岗和国企银行的offer 1.1. 秋招最终情况 本人情况:双非硕,意向工作城市广深,Java和Python技术栈 ...

  10. Python JWT 介绍

    Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...