ssh linux代理(ssh远程执行shell脚本)

各位老铁们,大家好,今天由我来为大家分享ssh linux代理,以及ssh远程执行shell脚本的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

Linux下的SSH端口转发配置方法

通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意的端口的访问。

端口转发可以分为三种,正向端口转发,反向端口转发和动态端口转发。

为了演示这三种端口转发方式的用法我们先假设存在有2个网域Office和Prod,在网域Office中有两个主机A和B,在网域Prod中两个主机C和D,这两个网域之间除了主机A能够访问C的22端口之外,其他所有的访问都被网络规则所禁止,也就是说A机器无法访问C的除22之外的所有其他端口,也无法访问到D主机;而主机C和D根本就无法访问A或者B中的任意一台主机。

top任务一:正向端口转发

现在开始我们的第一个任务:假设主机D上面安装有数据库服务,监听的端口是8888,如果我想通过Office域中的主机A直接访问D主机中的数据库那该怎么办呢?这就要用到SSH的正向端口功能了。在这先要说明一下,在Linux中,所有的端口转发的操作都可以通过使用自带的工具ssh来完成。

完成任务一的命令很简单,如下:

复制代码

   

代码如下:

ssh-L 8000:host-d.prod.mycompany.com:8888 oracle@host-c.prod.mycompany.com-N

现在解释一下上面的命令:

参数-L

表示在本地开启监听的端口,后面紧跟的参数格式为::,表示将本地的8000端口转发到远程主机D的8888端口。

   orainst@host-c.prod.mycompany.com

   这个参数指定要使用ssh登录的主机以及登录的用户名,这里使用的主机和前一个参数中的主机必须是在同一个网域当中,并且能相互访问,当然也可以是同一个机器。

参数-N

不执行远程的命令。这个参数在这里是可选的。

   现在在主机A上面运行上面的命令之后输入正确的密码,然后我们先登录主机A查看一下当前端口的状态:

复制代码

   

代码如下:

oracle@host-a[orcl]:~$ netstat-natp|grep 8000

   (Not all processes could be identified, non-owned process info

   will not be shown, you would have to be root to see it all.)

   tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 3767/ssh

   tcp 0 0::1:8000:::* LISTEN 3767/ssh

可以看到在主机A上已经存在8000端口准备随时接受连接了,不过要注意的是这里监听的网络是127.0.0.1(::1),也就是说这种连接仅限于本地操作。

接下来就是配置下TNSNAMES了,配置如下:

复制代码

   

代码如下:

orcl=

   (DESCRIPTION=

   (ENABLE=BROKEN)

   (ADDRESS_LIST=

   (FAILOVER=ON)

   (LOAD_BALANCE=YES)

   (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=8000))

   )

   (CONNECT_DATA=

   (SID=orcl)

   )

   )

然后tnsping测试一下:

复制代码

   

代码如下:

oracle@host-a[orcl]:~$ tnsping orcl

TNS Ping Utility for Linux: Version 11.1.0.7.0- Production on 05-JUL-2010 09:13:25

Copyright(c) 1997, 2008, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias

   Attempting to contact(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS_LIST=(FAILOVER=ON)(LOAD_BALANCE=YES)(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=8000)))(CONNECT_DATA=(SID=orcl)))

   OK(340 msec)

大功告成。

top任务二:反向端口转发

因为网域Prod不能以任何的方式访问网域Office,假设这两个网域所处的物理位置完全的不同,那当那一天处于网域Prod的时候又想操作处于网域Office中的主机A,那怎么办呢?这就是要用到反向端口转发的时候了。

反向端口转发的基本思想就是从主机A建立到主机C的ssh连接的同时在主机C上打开一个端口可以反向连接到主机B上面的某一个端口,当然从主机控制上面来说连接到主机B的22(ssh端口)是最实惠的了,现在要做的就是在主机A上面运行如下的命令:

复制代码

   

代码如下:

ssh-R 8888:localhosthost-b.office.mycompany.com:22 oracle@host-c.prod.mycompany.com-N

同样的,先解释下上面的命令:

参数-R

创建一个反向的端口转发,后面紧跟的参数格式为::,这里监听的端口是8888,反向连接要到C主机原来根本无法访问的主机B的22端口。

   oracle@host-c.prod.mycompany.com

   这个参数指定要使用ssh登录的主机以及登录的用户名,这里使用的主机和前一个参数中的主机必须是在同一个网域当中,并且能相互访问,当然也可以是同一个机器。

参数-N

不执行远程的命令。这个参数在这里是可选的。

   在主机A上面执行上面的命令成功之后就可以登录到主机C检查一下效果了,首先是检查8888端口的开发状态:

复制代码

   

代码如下:

oracle@host-c:~$ netstat-natp|grep 8888

   (No info could be read for"-p": geteuid()=1001 but you should be root.)

   tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN-

   tcp6 0 0::1:8888:::* LISTEN-

然后就是测试下这个端口的可用性,执行如下的命令:

复制代码

   

代码如下:

oracle@host-c:~$ ssh-p 8888 oracle@localhost

   Password:

   Last login: Mon Jul 5 02:34:50 2010 from 172.24.43.103

oracle@host-b.office$ hostname

   host-b.office.mycompany.com

   oracle@host-b.office$

至此现在已经成功的使用唯一开放的ssh端口建立了一个本来是完全不可能的连接。这种方法是非常有用的,具体在什么时候用就靠大家的发挥了。

top任务三:动态端口转发

动态端口转发实际上是建立一个ssh加密的SOCKS4/5代理通道,任何支持SOCKS4/5协议的程序都可以使用这个加密的通道来进行代理访问,现在这种方法最常用的地方就是翻墙了,使用的方法也很简单,命令如下:

复制代码

   

代码如下:

ssh-D 8888 username@proxyhost.mycompany.com-N

命令解释:

参数-D

建立一个动态的SOCKS4/5的代理通道,紧接着的是本地监听的端口号。

   username@proxyhost.mycompany.com

   这个参数指定要使用ssh登录的主机以及登录的用户名,这里使用的主机和前一个参数中的主机必须是在同一个网域当中,并且能相互访问,当然也可以是同一个机器。

参数-N

不执行远程的命令。这个参数在这里是可选的。

   因为这种方法对于办公方面没有什么帮助,所以也就不再多说。

延伸阅读

       SSH Tutorial for Linux           Secure Shell           Port forwarding   

SSH 通过代理连接服务器

老规矩,先说结论:

或者:

注意:由于 macOS版 Ncat的 7.90和 7.91版本的 bug,上述方式不再生效。起码 7.91版本在 macOS 10.15.7上是不行的。此问题在 7.92版本中已经解决。

具体原因参见:

但 Linux上没问题。所以增加个 socat的替补方案:

Scout本身很强大,但对代理的支持这部分貌似差一些,只支持 SOCKSv4和 HTTP Proxy,不支持 SOCKS5。详情参考《socat初窥门径》。

有些时候,由于网络限制等原因,不能直接连通过 SSH连到指定服务器,需要经过代理进行连接。例如如下场景:

其中,

client.net不能直接访问 server.net

client.net可以访问 proxy.net

proxy.net可以访问 server.net

使用 SSH的 ProxyCommand选项,配合 nc/Ncat命令,实现 client.net通过代理 proxy.net,以 SSH访问 server.net。

(1) nc

macOS上常用这种方案。但是 nc不支持需要认证的代理。

常用参数:

(2) Ncat

Ncat在 macOS上通过代理连接时会出现连接断开的情况。

常用参数:

以 nc为例,如使用 Ncat可以自行替换。

默认为 Socket5代理,这时可以省略-X参数

或者采用另一种写法:

SSH配置文件位置:

增加如下两行内容:以 nc为例,如使用 Ncat可以自行替换。

使用配置文件之后,就不需要在命令行中进行代理配置了。

对于大部分情况,都可以直接使用 nc或者 Ncat解决。但对于一些复杂情况,也可以通过其它方案完成。如在 macOS上想通过需要认证的代理连接,用 nc不支持代理认证, Ncat又有些问题。

对于代理类型的问题,可以通过 Brook来进行类型转换。

1、 corkscrew

只支持 HTTP代理

如需要访问带认证的代理服务器:

~/.ssh/myauth的内容:

2、 proxytunnel

只支持 HTTP代理

命令行里只填用户名,会提示输入密码,或者通过环境变量传入。

(完)

ssh使用代理linuxssh代理

手机上如何设置SSH?

确定iPhone已经越狱,且安装了OpenSSH和MobileTerminal。

下载PAC文件,上传到iPhone的/var/mobile文件夹中。更新一个全局PAC,但还是无法观看Youtube,所以最好还是用前者。

在"设置"--"Wi-Fi"中设置无线网络,"HTTP代理"处选择“自动”。

“URL”填“”。

打开Terminal,输入“ssh-D7070用户名@服务器地址”,如:ssh-D7070todaym@dreamhost.com,首次连接会提示(yes/no),输入“yes”,然后输入密码。

提示连接成功后,别退出Terminal,按“Home”键回到桌面,打开Safari享受没有国界的网络吧。

关闭SSH连接时输入“logout”,然后再退出Terminal。

这只是WiFi条件下,没有试在EDGE或3G网络下怎么调用PAC文件,想了一下,调用方法应该和破解cmwap调用PAC文件差不多,有兴趣的同学可以试一下。

linux开启端口命令?

1、查看哪些端口被打开netstat-anp。

2、关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport

端口号-jDROP。

3、打开端口号:iptables-AINPUT-ptcp--dport端口号-jACCEPT。

4、以下是linux打开端口命令的使用方法。nc-lp22(打开22端口,即telnet),netstat-an|grep22(查看是否打开22端口)。

5、linux打开端口命令每一个打开的端口。

关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport

端口号-jDROP。

扩展资料:

liunx常见端口详细说明:

1、端口:7

服务:Echo

说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。

2、端口:21

服务:FTP

说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口。

3、端口:22

服务:Ssh

说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞

存在。

4、端口:23

服务:Telnet

说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马TinyTelnetServer就开放这个端口。

5、端口:25

服务:SMTP

说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口。

6、端口:53

服务:DomainNameServer(DNS)

说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。

7、端口:80

服务:HTTP

说明:用于网页浏览。木马Executor开放此端口。

8、端口:102

服务:Messagetransferagent(MTA)-X.400overTCP/IP

说明:消息传输代理。

9、端口:110

服务:pop3

说明:POP3(PostOfficeProtocol

服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。

10、端口:137、138、139

服务:NETBIOSNameService

说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINSRegisrtation也用它。

11、端口:143

服务:InterimMailAccessProtocolv2

说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。

记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。

12、端口:161

服务:SNMP

说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。

SNMP包可能会被错误的指向用户的网络。

13、端口:389

服务:LDAP、ILS

说明:轻型目录访问协议和NetMeetingInternetLocatorServer共用这一端口。

14、端口:443

服务:Https

说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。

15、端口:993

服务:IMAP

说明:SSL(SecureSocketslayer)

16、端口:1433

服务:SQL

说明:Microsoft的SQL服务开放的端口。

17、端口:1503

服务:NetMeetingT.120

说明:NetMeetingT.120

18、端口:1720

服务:NetMeeting

说明:NetMeetingH.233callSetup。

19、端口:1731

服务:NetMeetingAudioCallControl

说明:NetMeeting音频调用控制。

20、端口:3389

服务:超级终端

说明:WINDOWS2000终端开放此端口。

21、端口:4000

服务:QQ客户端

说明:腾讯QQ客户端开放此端口。

22、端口:5631

服务:pcAnywere

说明:有时会看到很多这个端口的扫描,这依赖于用户所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能的代理(这里的代理是指agent而不是proxy)。入侵者也会寻找开放这种服务的计算机。所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口22的UDP数据包。

23、端口:6970

服务:RealAudio

说明:RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。

24、端口:7323

服务:

说明:Sygate服务器端。

25、端口:8000

服务:OICQ

说明:腾讯QQ服务器端开放此端口。

26、端口:8010

服务:Wingate

说明:Wingate代理开放此端口。

27、端口:8080

服务:代理端口

说明:WWW代理开放此端口。

linux端口号?

下列是linux常见的端口号:

1.HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098

2.SOCKS代理协议服务器常用端口号:1080

3.FTP(文件传输)协议代理服务器常用端口号:21

4.Telnet(远程登录)协议代理服务器常用端口号:23

5.HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)

6.HTTPS(securelytransferringwebpages)服务器,默认端口号为443/tcp443/udp

7.Telnet(不安全的文本传送),默认端口号为23/tcp(木马TinyTelnetServer所开放的端口)

8.FTP,默认的端口号为21/tcp(木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口)

9.TFTP(TrivialFileTransferProtocol),默认端口号为69/udp

10.SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp

SSH登录时提示的信息?

这种问题是由于公钥不一样了,所以无法登录,提示信息是KEY验证失败。

解决方法是:

在/root/.ssh/known_hosts文件里面将原来的公钥信息删除即可。

具体原因分析:SSH报“Hostkeyverificationfailed.”。一般来说,出现该错误有这么几种可能:

1..ssh/known_hosts里面记录的目标主机key值不正确。这是最普遍的情况,只要删除对应的主机记录就能恢复正常。

2.2..ssh目录或者.ssh/known_hosts对当前用户的权限设置不正确。这种情况比较少,一般正确设置读写权限以后也能恢复正常。

3.3./dev/tty对other用户没有放开读写权限。这种情况极为罕见。出现的现象是,只有root用户能够使用sshclient,而所有其他的普通用户都会出现错误。

4.我今天遇到的就是第三种情况,修改/dev/tty的权限后,一切正常。为了避免以后忘记解决方法,记录在这里。

5.问题2:ssh_exchange_identification:Connectionclosedbyremotehost

6.-------------------------------------------------------------------------------解决办法:修改/etc/hosts.allow文件,加入sshd:ALL。

7.符相关配制说明:vi/etc/ssh/ssh_config

8.-------------------------------------------------

9.下面逐行说明上面的选项设置:

10.Host*:选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。

11.ForwardAgentno:“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。

12.ForwardX11no:“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAYset)。

13.RhostsAuthenticationno:“RhostsAuthentication”设置是否使用基于rhosts的安全验证。

14.RhostsRSAAuthenticationno:“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。

15.RSAAuthenticationyes:RSAAuthentication”设置是否使用RSA算法进行安全验证。

16.PasswordAuthenticationyes:“PasswordAuthentication”设置是否使用口令验证。

17.FallBackToRshno:“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。

18.UseRshno:“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。

19.BatchModeno:“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。

20.CheckHostIPyes:“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。

21.StrictHostKeyCheckingno:“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。

22.IdentityFile~/.ssh/identity:“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。

23.Port22:“Port”设置连接到远程主机的端口。

阅读剩余
THE END