生信之旅

扫码分享下吧!
分享

SSH/SFTP通过SSH Tunnel跳板机登录内部服务器

近期在公司服务器(这里简称为A)上下载数据,由于通过网页下载比较麻烦,就想通过sftp来传输数据,但是一开始在A 上找不到对应的数据路径,而后通过查看网页端服务器配置发现了其代理了另一台机器(B),数据均在B上,最终发现B是A上开的虚拟机,路径找到了,但是连接却成了问题。我想把数据直接下载到分析服务器(C)上,但是C直接访问不到B。

通过咨询代理商后发现,其实A和B之间有设置ssh tunnel转发,端口均为22。

一、windows下的连接

       像在windows下使用winscp或者xshell等工具连接比较方便,直接填写好服务器B的IP、端口、用户名密码后,再在转发设置的地方填写服务器A的相应信息即可访问。

二、Linux下的连接

       若需要在Linux命令行下进行操作的话,则需要设置对应的参数。

比较简单的访问方式有:

# 将IP及用户名改为对应服务器的即可
sftp -o ProxyCommand='ssh user@A -W %h:%p' user@B
ssh -o ProxyCommand='ssh user@A -W %h:%p' user@B

若觉得麻烦也可以将配置信息写入到~/.ssh/config或者/etc/ssh/ssh_config文件中,对于第一个文件,找不到就新建一个,然后写入如下信息:

Host target # 代表目标机器(B)的名字,可随意
    HostName B  # 目标服务器的IP地址,这里指B
    User username #  目标服务器用户名,这里指B
    Port 22   # 目标服务器端口,默认22,这里指B
    ProxyCommand ssh user@A -W %h:%p  # 填写对应跳板机的IP,这里指A

这些注释信息需要删除,连接方法如下:

ssh target

三、Linux下的连接(推荐)

       对于OpenSSH 7.3及以上版本的,我们可以使用ProxyJump,可用下列命令查看OpenSSH的版本

ssh -V

使用更为简单:

# 将IP及用户名改为对应服务器的即可
sftp -o ProxyJump=user@A user@B
ssh -J user@A user@B

同时也可以将配置写入到配置文件中

Host target # 代表目标机器(B)的名字,可随意
    HostName B  # 目标服务器的IP地址,这里指B
    User username #  目标服务器用户名,这里指B
    ProxyJump user1@host1:port1,user2@host2:port2  # 跳板机(A)IP、端口、用户名,有多个跳板机则在后面用逗号(,)分隔即可

版权声明:本文转载请注明出处!

最新评论:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

captcha

公告栏

有任何问题均可以在文章页面留言!或者邮件 burning@burning.net.cn 欢迎关注微信公众号 “生信之旅”,每天均可在菜单栏领取外卖红包、支付宝红包!最高20元!

服务器推荐

欢迎关注公众号

欢迎关注生信之旅