ssh验证和端口转发
ssh 服务登录验证
ssh 服务登录验证方式:
用户/ 口令
基于密钥
基于用户和口令登录验证
客户端发起ssh请求,服务器会把自己的公钥发送给用户
用户会根据服务器发来的公钥对密码进行加密
加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功
基于用户名口令登录验证
基于密钥的登录方式
1。首先在客户端生成一对密钥(ssh-keygen)
2。并将客户端的公钥ssh-copy-id拷贝到服务端
3。 当客户端再次发送一个连接请求,包括ip 、用户名
4。 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf
5。 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
6。 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
7。 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
基于key 认证
ssh-keygen
ssh-keygen - authentication(证明)key generation, management and conversion(转化)
ssh-keygen [options]
-t type 指定密钥创建的类型
-P phrase 提供老的密码
-f 指定密钥文件
-p 更改私钥文件的密码
-i 导入到openssh密钥文件
ssh-copy-id
ssh-copy-id - install your public key in a remote machine’s authorized_keys
ssh-copy-id [-i [identity_file]] [user@]machine
ssh-add
ssh-add - adds private key identities to the authentication agent
ssh-add [-n [-T token]] [-e pkcs11] [-s pkcs11] [-cDdLlXx] [-t life] [file ...]
基于密钥的认证:
1。在客户端生成密钥对
ssh-keygen -t rsa [-P ''] [-f “~/.ssh/id_rsa"]
2。把公钥文件传输至远程服务器对应用户的家目录
ssh-copy-id [-i [identity_file]] [user@] host
3。测试,完成
可以给私钥加口令 :
ssh-keygen –p
私钥加口令后使用代理。
启动代理
ssh-agent bash
当你输入一次私钥的口令后,代理(authentication agent )保存口令,帮你下次自动登录,但当你注销后,代理程序关闭了。
要想再使用代理,就需要再此启动并ssh-add,才能有用。
在GNOME中,代理被自动提供给root用户,否则运行ssh-agent bash
私钥口令通过命令添加给代理
ssh-add
在SecureCRT或Xshell实现基于key验证
在SecureCRT 工具—> 创建公钥—> 生成Identity.pub 文件转化为openssh 兼容格式(适合SecureCRT ,Xshell 不需要转化格式),并复制到需登录主机上相应文件authorized_keys 中,注意权限 必须为600 ,在需登录的ssh 主机上执行:
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys(secureCRT)
SSH 端口转发
SSH 端口转发
SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。
但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务,这一 过程也被叫做“隧道”(tunneling )。
这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名,例如,Telnet、SMTP、LDAP 这些 TCP 应用均能够从中得益,可以避免用户名,密码以及隐私信息的明文传输。
与此同时, 如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH的连接 ,也能够通过将 TCP 端口转发来使用 SSH 进行通讯
SSH 端口转发能够提供两大功能:
加密SSH Client 端至 SSH Server端之间的通讯数据
突破防火墙的限制完成一些之前无法建立的TCP连接
本地转发:
-L localport:remotehost:remotehostport sshserver
选项:
-f 后台启用
-N 不打开远程shell ,处于等待状态
-g 启用网关功能
示例
A机器上为本地:
当你访问本机9527端口时,它会将请求转发到B的sshd服务器上,ssh服务器收到解密后,将其再转发到c的telnet服务器的23端口。
前提:C机器上telnet服务打开,A和B机器上sshd服务打开,本机防火墙关闭
ssh –L 9527:telnetsrvIP:23 -Nf sshsrvIP (开通桥)
telnet 127.0.0.1 9527
data <- -> localhost:9527 <- -> localhost:XXXXX <- ->sshsrv:22 <- -> sshsrv:YYYYY <- -> telnetsrv:23
远程转发:
-R sshserverport:remotehost:remotehostport sshserver
示例:
B机器为本机:
让A机器sshsrv侦听9527端口的访问,如有访问,A机器就加密后通过ssh服务转发请求到B本机ssh客户端,再由本机解密后转发到smtpsrv:25
ssh –R 9527:smtpsrvIP:25 –Nf sshsrvIP
Data <- -> remotesshsrv:9527 <- -> remotesshsrv:22 <- -> localhost:XXXXX <- -> localhost:YYYYY(随机端口) <- -> smtpsrv:25
动态端口转发:
当用firefox访问internet 时,本机的1080端口做为代理服务器,firefox 的访问请求被转发到sshserver 上,由sshserver替之访问internet
在本机firefox 设置代理socket proxy:127.0.0.1:1080
ssh -D 1080 root@sshserver
curl --proxy
X协议转发
所有图形化应用程序都是X客户程序
能够通过tcp/ip 连接远程X服务器
数据没有加密机,但是它通过ssh连接隧道安全进行
ssh -X user@remotehost gedit
remotehost主机上的gedit 工具,将会显示在本机的X服务器上
传输的数据将通过ssh连接加密
ssh验证和端口转发的更多相关文章
- 基于SSH协议的端口转发
[前言] 最近一直在使用ssh协议的端口转发(隧道)功能,完成对内网空透等.这篇文章将主要讲解3种常用的ssh tunnelling使用方法和基本原理. 在介绍具体内容前,我先奉上端口转发的常用情景: ...
- SSH隧道:端口转发功能详解
SSH系列文章: SSH基础:SSH和SSH服务 SSH转发代理:ssh-agent用法详解 SSH隧道:端口转发功能详解 1.1 ssh安全隧道(一):本地端口转发 如下图,假如host3和host ...
- ssh隧道实现端口转发
ssh隧道实现端口转发 本地转发 # 本地转发 ssh -g -f -N -L : root@ # -L 本地端口转发,转发172.16.1.1主机可以访问的资源,这里为转发172.16.1.2的80 ...
- 使用 SSH 隧道实现端口转发、SOCKS 代理
SSH隧道 本地端口转发 本地客户端通过 local_port 连接到 MobaXterm: MobaXterm 绕过防火墙,使用 user 用户连接到 ssh_server_ip:ssh_serve ...
- SSH 内网端口转发实战
导读 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人. 如果两个内网之间的linux服务器需要互相登录,或需要互相访问内网某个端口,担忧 ...
- SSH隧道技术----端口转发,socket代理
原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写 ...
- 流量操控之SSH隧道与端口转发
目 录 第1章 概述... 3 1.1. 实现命令... 3 1.2. SSH隧道类型... 3 第2章 SSH隧道... ...
- SSH Tunnel扫盲(ssh port forwarding端口转发)
SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能.它可以建立一条安全的SSH通道,并把任意的TCP连接放到这条通道中.下面仔细就仔细讨论SSH的这种非常有用的功能 ...
- [Linux] SSH隧道本地端口转发访问远程服务中的数据库
当我的本地没有安装任何数据库服务的时候,可以直接通过我本地的端口访问远程机器上的数据库服务,实现这样的效果就可以使用本地转发功能 实际测试本地端口转发,把本地的9006端口转发给远程服务器的115.1 ...
随机推荐
- UVa 514 铁轨
题意: #include <bits/stdc++.h> using namespace std; int main() { int n; ]; ; ) { ]) && n ...
- poj 3253 Fence Repair (优先队列,哈弗曼)
题目链接:http://poj.org/problem?id=3253 题意:给出n块木板的长度L1,L2...Ln,求在一块总长为这个木板和的大木板中如何切割出这n块木板花费最少,花费就是将木板切割 ...
- PS一些技巧
色阶的解决办法 我们做效果图的时候经常会使用大面积渐变,时常会出现比较严重的色阶问题,通常出现这些明显色阶的时候,可以通过使用高斯模糊对色阶进行模糊化处理. 在使用PS CC的过程中,笔者经常遇到假死 ...
- C51 独立按键 个人笔记
独立按键类似于一个开关,按下时开关闭合 防抖 硬件防抖 软件防抖 通过延时,滤掉抖动的部分 电路图 普中科技的开发板,独立按键电路图如下 判断按键按下 因此判断是否按下开关的方法是看引脚是否为低电平( ...
- word 给段落添加背景色
word 2007 单击"页面布局"选项卡->单击"页面背景"一栏中的"页面边框"->(弹出边框与底纹对话框)->点击底纹 ...
- openstack -> openinfra
https://www.openstack.org/assets/software/projectmap/openstack-map.pdf
- 数据结构-B+树
B+ 树是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+树包含根节点.内部节点和叶子节点.根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点. B+ 树通常用于 ...
- POJ 1191 DP+DFS棋盘分割问题
题目大意: Description 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形 ...
- Java面试题解析(一)
本文是面试题目系列的第一篇,题目主要来自 GitChat 上一个课程,在此特别记录自身想的答案和在网上查询的结果,分享出来,大家共同学习.如果有不对的地方,欢迎大家指出. Java基础 JDK 和 J ...
- 洛谷 P3609 [USACO17JAN]Hoof, Paper, Scissor蹄子剪刀…
P3609 [USACO17JAN]Hoof, Paper, Scissor蹄子剪刀… 题目背景 欢迎提供翻译,请直接在讨论区发帖,感谢你的贡献. 题目描述 You have probably hea ...