首页 > 其他分享 >一文讲解SSH你一定不知道的八大黑科技玩法,网络安全零基础入门到精通教程建议收藏!

一文讲解SSH你一定不知道的八大黑科技玩法,网络安全零基础入门到精通教程建议收藏!

时间:2024-11-23 12:03:23浏览次数:6  
标签:网络安全 端口 玩法 远程 SSH 本地 服务器 example ssh

SSH(Secure Shell)是什么?是一项创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。也是专为远程登录会话和其他网络服务提供安全性的协议。它能够有效防止远程管理过程中的信息泄露问题。通过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。

具体生成 SSH Key 方式请参考:Github ssh key生成,免密登录服务器方法。这里以 id_ecdsa(私钥) 和 id_ecdsa.pub(公钥) 为例。

本篇文章主要介绍 SSH 相关的使用技巧。通过对 ~/.ssh/config 文件的配置你可以大大简化 SSH 相关的操作,如:

Host example                       # 关键词  
    HostName example.com           # 主机地址  
    User root                      # 用户名  
    # IdentityFile ~/.ssh/id_ecdsa # 认证文件  
    # Port 22                      # 指定端口  

通过执行 $ ssh example 我就可以登录我的服务器。而不需要敲更多的命令 $ ssh root@example.com。又如我们想要向服务器传文件 $ scp a.txt example:/home/user_name。比以前方便多了。

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

背景知识:配置项介绍

SSH 的配置文件有两个:

$ ~/.ssh/config            # 用户配置文件  
$ /etc/ssh/ssh_config      # 系统配置文件  

下面来看看常用的配置参数。

Host用于我们执行 SSH 命令的时候如何匹配到该配置。

  • *,匹配所有主机名。

  • *.example.com,匹配以 .example.com 结尾。

  • !*.dialup.example.com,*.example.com,以 ! 开头是排除的意思。

  • 192.168.0.?,匹配 192.168.0.[0-9] 的 IP。

AddKeysToAgent是否自动将 key 加入到 ssh-agent,值可以为 no(default)/confirm/ask/yes。

如果是 yes,key 和密码都将读取文件并以加入到 agent ,就像 ssh-add。其他分别是询问、确认、不加入的意思。添加到 ssh-agent 意味着将私钥和密码交给它管理,让它来进行身份认证。

AddressFamily指定连接的时候使用的地址族,值可以为 any(default)/inet(IPv4)/inet6(IPv6)。

BindAddress指定连接的时候使用的本地主机地址,只在系统有多个地址的时候有用。在 UsePrivilegedPort 值为 yes 的时候无效。

ChallengeResponseAuthentication是否响应支持的身份验证 chanllenge,yes(default)/no。

Compression是否压缩,值可以为 no(default)/yes。

CompressionLevel压缩等级,值可以为 1(fast)-9(slow)。6(default),相当于 gzip。

ConnectionAttempts退出前尝试连接的次数,值必须为整数,1(default)。

ConnectTimeout连接 SSH 服务器超时时间,单位 s,默认系统 TCP 超时时间。

ControlMaster是否开启单一网络共享多个 session,值可以为 no(default)/yes/ask/auto。需要和 ControlPath 配合使用,当值为 yes 时,ssh 会监听该路径下的 control socket,多个 session 会去连接该 socket,它们会尽可能的复用该网络连接而不是重新建立新的。

ControlPath指定 control socket 的路径,值可以直接指定也可以用一下参数代替:

  • %L 本地主机名的第一个组件

  • %l 本地主机名(包括域名)

  • %h 远程主机名(命令行输入)

  • %n 远程原始主机名

  • %p 远程主机端口

  • %r 远程登录用户名

  • %u 本地 ssh 正在使用的用户名

  • %i 本地 ssh 正在使用 uid

  • %C 值为 %l%h%p%r 的 hash

请最大限度的保持 ControlPath 的唯一。至少包含 %h,%p,%r(或者 %C)。

ControlPersist结合 ControlMaster 使用,指定连接打开后后台保持的时间。值可以为 no/yes/整数,单位 s。如果为 no,最初的客户端关闭就关闭。如果 yes/0,无限期的,直到杀死或通过其它机制,如:ssh -O exit。

GatewayPorts指定是否允许远程主机连接到本地转发端口,值可以为 no(default)/yes。默认情况,ssh 为本地回环地址绑定了端口转发器。

HostName真实的主机名,默认值为命令行输入的值(允许 IP)。你也可以使用 %h,它将自动替换,只要替换后的地址是完整的就 ok。

IdentitiesOnly指定 ssh 只能使用配置文件指定的 identity 和 certificate 文件或通过 ssh 命令行通过身份验证,即使 ssh-agent 或 PKCS11Provider 提供了多个 identities。值可以为 no(default)/yes。

IdentityFile指定读取的认证文件路径,允许 DSA,ECDSA,Ed25519 或 RSA。值可以直接指定也可以用一下参数代替:

  • %d,本地用户目录 ~

  • %u,本地用户

  • %l,本地主机名

  • %h,远程主机名

  • %r,远程用户名

LocalCommand指定在连接成功后,本地主机执行的命令(单纯的本地命令)。可使用 %d,%h,%l,%n,%p,%r,%u,%C 替换部分参数。只在 PermitLocalCommand 开启的情况下有效。

LocalForward指定本地主机的端口通过 ssh 转发到指定远程主机。格式:LocalForward [bind_address:]post host:hostport,支持 IPv6。

RemoteForward指定远程主机的端口通过 ssh 转发到指定本地主机。格式:RemoteForward [bind_address:]post host:hostport,支持 IPv6。

PasswordAuthentication是否使用密码进行身份验证,yes(default)/no。

PermitLocalCommand是否允许指定 LocalCommand,值可以为 no(default)/yes。

Port指定连接远程主机的哪个端口,22(default)。

ProxyCommand指定连接的服务器需要执行的命令。%h,%p,%r

如:ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p

User登录用户名

技巧 1:管理多组密钥对

有时候你会针对多个服务器有不同的密钥对,每次通过指定 -i 参数也是非常的不方便。比如你使用 github 和 coding。那么你需要添加如下配置到 ~/.ssh/config

Host github  
    HostName %h.com  
    IdentityFile ~/.ssh/id_ecdsa_github  
    User git  
Host coding  
    HostName git.coding.net  
    IdentityFile ~/.ssh/id_rsa_coding  
    User git  

当你克隆 coding 上的某个仓库时:

# 原来  
$ git clone git@git.coding.net:deepzz/test.git  
  
# 现在  
$ git clone coding:deepzz/test.git  

技巧 2:vim 访问远程文件

vim 可以直接编辑远程服务器上的文件:

$ vim scp://root@example.com//home/centos/docker-compose.yml  
$ vim scp://example//home/centos/docker-compose.yml  

技巧 3:远程服务当本地用

通过 LocalForward 将本地端口上的数据流量通过 ssh 转发到远程主机的指定端口。感觉你是使用的本地服务,其实你使用的远程服务。如远程服务器上运行着 Postgres,端口 5432(未暴露端口给外部)。那么,你可以:

Host db  
    HostName db.example.com  
    LocalForward 5433 localhost:5432  

当你连接远程主机时,它会在本地打开一个 5433 端口,并将该端口的流量通过 ssh 转发到远程服务器上的 5432 端口。

首先,建立连接:

$ ssh db  

之后,就可以通过 Postgres 客户端连接本地 5433 端口:

$ psql -h localhost -p 5433 orders  

技巧 4:远程流量转发到本地

通过 RemoteForward 可以将远程主机上的流量转发到本地。这种方式特别适合本地调试在线服务,如微信开发者、支付宝开发者。

Host remote  
    HostName remote.example.com  
    RemoteForward 8080 localhost:3000  

当你连接主机时,它会在远程监听一个 8000 端口,并将该端口的流量通过 ssh 转发到本地服务器上的 3000 端口。

技巧 5:多连接共享

什么是多连接共享?在你打开多个 shell 窗口时需要连接同一台服务器,如果你不想每次都输入用户名,密码,或是等待连接建立,那么你需要添加如下配置到 ~/.ssh/config

ControlMaster auto  
ControlPath /tmp/%r@%h:%p  

技巧 6:关键词登录

为了更方便的登录服务器,我们也可以省略用户名和主机名,采用关键词登录。那么你需要添加如下配置到 ~/.ssh/config

Host deepzz                        # 别名  
    HostName deepzz.com            # 主机地址  
    User root                      # 用户名  
    # IdentityFile ~/.ssh/id_ecdsa # 认证文件  
    # Port 22                      # 指定端口  

那么使用 $ ssh deepzz 就可以直接登录服务器了。

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

技巧 7:代理登录

有的时候你可能没法直接登录到某台服务器,而需要使用一台中间服务器进行中转,如公司内网服务器。首先确保你已经为服务器配置了公钥访问,并开启了agent forwarding,那么你需要添加如下配置到 ~/.ssh/config

Host gateway  
    HostName proxy.example.com  
    User root  
Host db  
    HostName db.internal.example.com                  # 目标服务器地址  
    User root                                         # 用户名  
    # IdentityFile ~/.ssh/id_ecdsa                    # 认证文件  
    ProxyCommand ssh gateway netcat -q 600 %h %p      # 代理命令  

那么你现在可以使用 $ ssh db 连接了。

技巧 8:远程执行命令

日常情况我们需要到服务器上去执行一些命令或拷贝文件,本来是很简单的一件事情,但做得多了就比较繁琐了。通过 SSH 帮我们远程执行相关命令或脚本,非常棒。

如有不了解的知识点,请阅读前面。利用 SSH 来帮我们在本地执行命令:

1、执行远程命令:

$ ssh example "cd /; ls"  
bin  
boot  
data  
...  

2、执行多行命令:

$ ssh example "  
dquote> cd /   
dquote> ls  
dquote> "  
bin  
boot  
data  
...  

3、执行本地脚本 有时候,我们会将经常用到命令,如将一个复杂命令写入到一个 shell 脚本中,但又不想拷贝到服务器上,那么:

# 示例脚本  
$ echo "cd /; ls" > test.sh  
# 为脚本添加可执行权限  
$ chmod +x test.sh  
  
# 远程执行本地脚本  
$ ssh example < test.sh  
Pseudo-terminal will not be allocated because stdin is not a terminal.  
bin  
boot  
data  
...  

4、执行需要交互的命令

ssh -t example "top"  

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

标签:网络安全,端口,玩法,远程,SSH,本地,服务器,example,ssh
From: https://blog.csdn.net/A1353192296/article/details/143990043

相关文章

  • 全面解析Shodan:网络安全中的设备扫描与漏洞识别利器
    声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站......
  • 蓝易云 - Ubuntu安装Net-tools和SSH
    在Ubuntu上安装Net-tools和SSH是常见的操作。下面是一个简单的教程:安装Net-tools:打开终端,并使用root权限登录到Ubuntu。运行以下命令以安装Net-tools:apt-getupdateapt-getinstallnet-tools​安装完成后,Net-tools的命令(如ifconfig、netstat等)将可用于网络配置和监控。......
  • Windows使用ssh免密登录Ubuntu系统
    1.在Ubuntu系统中配置SSH服务(使用付费或实验室服务器一般不用这一步前人已经栽好树了)首先要确保Ubuntu系统安装并开启了SSH服务。如果没有安装,可以通过以下命令在终端中进行安装:sudoaptupdatesudoaptinstallopenssh-server#安装完成后,检......
  • javaweb基于SSH开发简单的新闻文章管理系统源码(前台+后台) 课程设计 大作业
    作品编号:1113数据库:mysql后端技术:SSH......
  • 2024网络安全现状,一个(黑客)真实的收入
    一个黑客年薪是多少呢?外界普遍认为黑客是高收入群体,那么你想过黑客是怎么赚钱的吗?黑客分为白帽黑客和黑帽黑客,处于黑白两道的黑客会的技术都有些相似,但是却是对立的,白帽做网络安全,修补漏洞。黑帽各种破坏,挖数据,攻击漏洞。===白帽收入稳定由于白帽黑客是正规稳定的职业,通......
  • SSH通信+Ubuntu+PC和Raspberry
    参考:http://wiki.ros.org/ROS/NetworkSetup首先把要通讯的PC和Raspberry连在同一个wifi下.(我这里PC的hostname是zsfmec,Raspberry的hostname是er,hostname就是你打开终端时候绿色字体中@后面的内容)假如想在PC上通过ssh通讯进入Raspberry的系统,首先,在Raspberry终端输......
  • 【Git】TortoiseGit(小乌龟)配置SSH和使用
    Gitee提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。(有HTTPS协议和SSH协议SSH协议好像更安全)预装软件git(Windows版)和TortoiseGit(小乌龟)TortoiseGit安装地址:Download–TortoiseGit–WindowsShellInterfacetoGit安装中文......
  • 【网络安全 渗透工具】Hydra工具安装、使用详析
    接着在当前目录中进入cmd:输入:hydra-h若出现正常回显,则说明安装成功。使用详析常见参数Hydra是一个命令行工具,所有的操作都是通过命令和参数实现的,见下表:选项说明-R继续上一次破解-I忽略现有还原文件(不等待10秒)-sPORT指定端口(无-s则表示指定默认端口)-lLOGIN指......
  • 邮件安全网关厂商哪个好?靠谱邮件实力上榜中国网络安全行业全景册
    靠谱邮件依托在邮件云安全领域20余年的深耕,凭借丰富的邮件安全产品矩阵、持续的技术创新能力和专业的售后服务,实力上榜网络安全行业媒体FreeBuf发布的《CCSIP2023中国网络安全行业全景册》,受到行业的高度认可,成为企业认可选择的邮件网关厂商。据悉本次全景册由FreeBuf咨询顾......
  • 网络安全(黑客)——自学2024
    ......