SSH安装与使用

article/2025/8/2 7:30:47

目录

SSH的安全机制

SSH的安装

启动服务器的SSH服务

SSH两种级别的远程登录

SSH的高级应用


Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。

SSH的安全机制

SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。

第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

SSH的安装

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

启动服务器的SSH服务

首先确认ssh-server是否已经启动了

ps -e | grep ssh

如图,sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

sudo /etc/init.d/ssh start 

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务

接下来就可以进行使用客户机远程登录服务器了~

SSH两种级别的远程登录

一、口令登录

口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址  eg:

ssh ldz@192.168.0.1

如果需要调用图形界面程序可以使用 -X 选项

ssh -X ldz@192.168.0.1

如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。

ssh 192.168.0.1

还要说明的是,SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口:

ssh -p 1234 ldz@192.168.0.1

客户机必须要知道服务器的ip地址。可以在服务器端电脑上利用 ifconfig 命令查看该机的ip地址:

如果是第一次登录远程主机,系统会给出下面提示:

意思是,该远程主机的真实性无法确定,其公钥指纹为 SHA256:FFobshqrGOachj7Xp4LsJ9+xkNBlyyOe8ZIPl7K+qQI,确定想要继续连接吗?

输入yes即可。这时系统会提示远程主机被添加到已知主机列表。

 

然后会要求我们输入远程主机的密码,输入的密码正确就可以成功登录了。命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行。

我们可以通过 Ctrl+D 或者 exit 命令退出远程登录

 

二、公钥登录

每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

1、在本机生成密钥对

使用ssh-keygen命令生成密钥对:

ssh-keygen -t rsa   #-t表示类型选项,这里采用rsa加密算法

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa公钥文件 id_rsa.pub

2、将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

ssh-copy-id ldz@192.168.0.1

经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

cheers~

 

SSH的高级应用

使用远程主机不中断的跑程序

当我们利用ssh在远程主机上跑程序的时候,只要关闭了终端就会中断ssh连接,然后远程主机上正在跑的程序或者服务就会自动停止运行。我们可以利用 nohup + 需要运行的程序 使运行的程序在切断ssh连接的时候仍然能够继续在远程主机中运行。nohup即no hang up(不挂起)。

除此之外还有很多远程操作应用,包括 数据传输、端口操作(将不加密的网络连接绑定到ssh端口实现间接加密) 等等,可以参考柚子皮大神的博客:https://blog.csdn.net/pipisorry/article/details/52269785

 

 

 


http://chatgpt.dhexx.cn/article/ZN0ysLpI.shtml

相关文章

windows 安装ssh(两种方法)

windows 安装ssh(两种方法) 1.使用 Windows 设置来安装 OpenSSH 可以使用 Windows Server 2019 和 Windows 10 设备上的 Windows 设置安装这两个 OpenSSH 组件。 若要安装 OpenSSH 组件: 打开“设置”,选择“应用”>“应用和功…

ssh安装和出现的问题

一:ssh检查 使用命令ps-e|grep ssh后: 结果显示ssh没有安装成功 二:检测本机与主机连通性 Ping 198.168.174.128 说明主机没有问题 三,重新安装ssh 如果缺少sshd,说明ssh服务 没有启动 或者 没有安装安装命令为&am…

ssh 安装

一、centos 7 1、安装及基本配置 验证是否已安装: yum list installed | grep openssh-server输出内容如下图所示表示已安装ssh 否则输入以下内容始安装: yum install openssh-server2、自定义配置 编辑配置文件: vi /etc/ssh/sshd_config开启端口…

安装ssh步骤总结

1.先登录root账户 sudo su root 2.apt-get更新 sudo apt-get update 3.安装ssh协议 sudo apt-get install ssh 4.查询ssh安装成功没有 ps -e|grep ssh 5.修改ssh配置文件,里面的内容改为和我的一样 vim /etc/ssh/sshd_config 6.修改另一个配置文件,改为和我一样…

ThinkPHP漏洞总结(利用)

ThinkPHP介绍 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借…

Thinkphp3全漏洞分析

这里给大家推荐两个phpdebug的docker容器,也是我一直在用的,不用配置很复杂的环境,即开即用: 框架介绍 基本信息 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用…

ThinkPHP V5.0.5漏洞_ThinkPHP漏洞分析与利用

一、组件介绍 1.1 基本信息 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/Unix/Linux等服务器环…

php安全漏洞怎么修复,thinkphp漏洞如何修复

THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查询系统的漏洞都进行了修复,官方本以为没有问题了,但是在实际的安全检测当中发现,还是…

TPScan一键ThinkPHP漏洞检测工具使用

TPScan一键ThinkPHP漏洞检测工具​thinkphp_gui_tools下载地址:关注Johnson666安全公众号,只要发送thinkphp就可以获取下载地址 1.简要描述 这个工具写完有一段时间了,看网上目前还没有一个thinkphp的漏洞集成检测工具,所以打算…

thinkphp5.0漏洞修复

thinkphp5.0漏洞修复 5.0版本 文件位置 /thinkphp/library/think/App.php if (!preg_match(/^[A-Za-z][\w\.]*$/, $controller)) {throw new HttpException(404, controller not exists: . $controller); }漏洞描述 由于ThinkPHP5.0框架对Request类的method处理存在缺陷&a…

ThinkPHP一键检测ThinkPHP漏洞,漏洞检测工具

功能简介:本工具一键检测网上流行的ThinkPHP漏洞,如存在漏洞请尽快修复。漏洞可造成shell提权,直接用中国菜刀就可以连接,修改服务器文件!危害极大!最好是禁用eval等危险函数! 下载地址:https://pan.edait.cn/s/VfuaQj2li2

Thinkphp漏洞

➢ Thinkphp介绍 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,支持 windows/Unix/Linux等服务器环境。 ➢ Thinkphp应用 很多cms就是基于thinkphp二次开发的,所以thinkphp出问题的话,会影响很多基于thinkphp开发的网站。 ➢历…

Thinkphp历史漏洞复现

Thinkphp简介 Thinkphp 是一种开源框架。是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。 很多cms(内容管理系统)就是基于 thinkphp 二次开发的,所以 thinkphp 出问题的话,会影响很多基于 thinkphp 开发的网站。 Thinkp…

vulhub-thinkphp漏洞复现

vulhub-thinkphp漏洞复现 https://silentx.gitee.io/2022/09/06/thinkphp/ 一.ThinkPHP 2.x 任意代码执行漏洞 1.概述 漏洞成因:ThinkPHP 2.x版本中,使用preg_replace的 /e 模式匹配路由: $res preg_replace((\w).$depr.([^.$depr.\/])e,…

[Vulhub] ThinkPHP漏洞合集

文章目录 ThinkPHP 2.x 任意代码执行漏洞0x00 漏洞描述0x01 影响版本0x02 靶场环境0x03 漏洞分析0x04 漏洞复现0x05 getshell Thinkphp5 5.0.22 / 5.1.29远程执行代码漏洞0x00 漏洞描述0x01 影响版本0x02 靶场环境0x03 漏洞分析0x04 漏洞复现0x05 getshell ThinkPHP5 5.0.23远程…

thinkphp框架漏洞复现

环境搭建请参考vulhub官网,https://vulhub.org 目录 一、2-rce漏洞 二、5.0.23-rce漏洞 三、5-RCE 一、2-rce漏洞 ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由: $res preg_replace((\w).$depr.([^.$depr.\/])e, $var[\\\1\]…

MSF复现Thinkphp漏洞

简介 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外…

ThinkPHP漏洞总结复现

ThinkPHP漏洞总结 简介版本Thinkphp 2.x 任意代码执行漏洞漏洞原理复现过程修复意见 Thinkphp5-5.0.22/5.1.29远程执行代码漏洞漏洞原理影响范围复现过程修复意见 Thinkphp5.0.23远程代码执行漏洞漏洞原理影响范围复现过程修复意见 Thinkphp5 SQL注入漏洞和敏感信息泄露漏洞漏洞…

ThinkPHP 漏洞利用工具

在Github上搜寻好用的安全工具,来充实武器库,实属一大乐趣所在。 当看到ThinkPHP十年磨一剑的提示,那么今天这里分享的工具就可以派上用场了,一键检测ThinkPHP全版本漏洞。 01、TPscan 一键ThinkPHP漏洞检测,基于Python3,命令行检测,集成了14个常见的ThinkPHP框架漏洞检…

ThinkPHP历史漏洞

文章目录 ThinkPHP简介Thinkphp历史漏洞Thinkphp 2.x 任意代码执行漏洞漏洞描述影响版本漏洞复现 Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)漏洞描述影响版本漏洞复现 ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)漏洞描述影响版本漏洞复现 Think…