使用SSH从公网服务器简易使用内网任意机器服务,比如从外部下载代码
  F9RiH9mdomwY 18天前 17 0

如果有一个台外部的机器waibu-host, 位于阿里云, 腾讯云, 亚马逊, azure云等等; 

假设你想从这个waibu-host上访问公司任意服务,下载代码, 访问http服务,等等, 或者你机器上的服务, 不需要额外工具, 只要ssh 反向就可以实现;

 

借个图, 如下:

 

举个例子, 如果你想从公司内部通过git ssh下载gitlab代码, 该怎么做呢?

假设内部的gitlab  ssh下载地址为 gitlab.inner.com:2222

第一步:  内部你的公司机器上运行ssh 反向代理, 建立隧道;

            这条命令会在你的机器上起一个代理,  waibu-host上起一个监听端口2222

ssh -i ./ssh-key.pem   -ngfNT -R 2222:gitlab.inner.com:2222 user@waibu-host

          命令运行完毕, 在waibu-host上可以看到2222端口监听, 访问2222就可以通过你的机器(建议用linux) 代理到内部的 gitlab上;

第二步:  在waibu-host对ssh再做一点配置, 如下, 让下载代码的解析到本地, 并且增加用户和key配置

# cat ~/.ssh/config 
Host gitlab.inner.com
   HostName 127.0.0.1
   User git
   IdentityFile ~/.ssh/id_rsa
   Port 2222

第三步: 在公司内部的gitlab上你的账户下, 增加ssh key凭证; 将waibu-host上的公钥增加到你的账户下.

如果已有秘钥, 忽略这一步;

如果没有想生成秘钥, 可如下操作

# ssh-keygen -t rsa -b 1024
#连续回车, 这样在~/.ssh/下就产生了 id_rsa id_rsa.pub秘钥, 在公司内部gitlab上增加 id_rsa.pub秘钥

 

第四步: 在waibu-host验证 ssh 到gitlab是不是成功了; 如果看到下面的输出, 就是成功了; 如果没有, 回头检查一下

# ssh -T -p 2222 gitlab.inner.com -l git
Welcome to GitLab, @user!

第五步: 在waibu-hos愉快的下载代码, 例如下面; 这样, 即使你的代码中还嵌套了内部的gitlab地址, 仍然可以愉快的使用

git clone ssh://gitlab.inner.com:2222/project/modules... 

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 18天前 0

暂无评论

推荐阅读
  VExS4Gg6g4KD   4天前   18   0   0 Linux
  VExS4Gg6g4KD   4天前   13   0   0 Linux
  VExS4Gg6g4KD   4天前   18   0   0 Linux
  X6z51Yzaj35p   4天前   14   0   0 Linux
  T0lscH4Qgx5j   9天前   20   0   0 Linux
  u05qsPMWcUGd   9天前   22   0   0 Linux
  VExS4Gg6g4KD   4天前   13   0   0 Linux
  iNBin04WVNys   4天前   11   0   0 Linux
  QP84hQv41ZIv   4天前   14   0   0 Linux