rt,需要本地直接登陆 B 机器
![]() | 1 yangxiaoluck OP 跪求高手解答,每次拷贝文件都是从本地拷贝到 A ,在从 A 转到 B 真特么醉了 |
![]() | 2 erevus 2016-05-18 16:46:31 +08:00 你是要绕过跳板机登机器?我要告诉你司运维 |
![]() | 3 yangxiaoluck OP @erevus 被你发现了 哈哈 |
![]() | 4 domty 2016-05-18 16:57:01 +08:00 那在 b 机器上记录下你的 ssh-key 不就行了, 前提是你能拿到 b 机器的 root 权限。 |
![]() | 5 YUX PRO A 上搭个 SS? |
6 scgy5555 2016-05-18 16:58:18 +08:00 vpn 可破 能连外网直接走 git 至于能不能挂 vpn 还是要找运维 |
![]() | 7 yangxiaoluck OP @domty 加了 key 也登陆不了的,我试过了 A 机器上我+了 key 就能登陆 |
![]() | 8 Lycnir 2016-05-18 17:00:29 +08:00 作为一名运维,我保证不打死你。。哈哈哈 |
![]() | 9 yangxiaoluck OP @Lycnir 那你告诉我怎么破 然后打死我 |
10 DingGuitao 2016-05-18 17:15:33 +08:00 VPN 或者 ssh 隧道 |
![]() | 11 mortal 2016-05-18 17:20:18 +08:00 ![]() 我就是这样的, AB 俩 SS 服务器, B 被封了,通过 A 的 SS 代理才可以本地 SSH 到 B 。 |
![]() | 12 congeec 2016-05-18 17:24:03 +08:00 一条命令搞定,在跳板机上执行 socat tcp-l:3333,fork tcp:45.32.22.151:22 socat tcp-listen:跳板机监听端口,fork,reuseaddr tcp:目标 B 机器 IP 地址:目标 B 机器端口 然后在你本地的机器上直接 `ssh 跳板机 IP 地址 -p 跳板机监听端口` |
![]() | 13 learnshare 2016-05-18 17:26:16 +08:00 跳过跳板不会被打死? |
![]() | 14 lxf1992521 2016-05-18 17:28:49 +08:00 这个不是 SSH 三大转发之认证转发的功能吗? |
![]() | 15 fahai 2016-05-18 17:32:03 +08:00 果然最大的漏洞就是人。。 |
![]() | 16 yangxiaoluck OP @congeec 不行额 端口权限只有 root 有 |
17 lualu2 2016-05-18 17:44:58 +08:00 不会命令行的话就用 myentuunel 连接 A, 然后会产生一个 socks 代理,然后本地 ssh 工具通过这个 socks 代理连接 B |
![]() | 18 ShiHou 2016-05-18 17:50:08 +08:00 ssh 有 reverse ,详见 ssh -R 参数 http://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work |
![]() | 19 yangxiaoluck OP @lualu2 会命令行啊 主要是没有端口权限 需要 root |
21 ddd2500 2016-05-18 17:52:12 +08:00 Bitvise 的话, 可以 A 开启 ssh 代理, 连接 B 时通过 A 的 ssh 代理。 |
![]() | 22 congeec 2016-05-18 17:54:24 +08:00 @yangxiaoluck 任何端口都没权限?不可能吧。难道你的跳板机只开 22 端口?你试试 65535 这种数比较大的端口 |
23 wangxn 2016-05-18 17:55:55 +08:00 这不就是 SSH 反向代理吗?根本用不着第三方软件。 |
24 ghostheaven 2016-05-18 18:00:23 +08:00 via Android 1.把 A 的 key 放在本地 2.ssh -D1080 A ,连到 A 并本地开 1080 socks 代理 3.本地配置.ssh/config,连接 B 的使用代理 ProxyCommand ,可以用 nc 或者 connect 4.本地直接连接 B |
![]() | 25 glasslion 2016-05-18 18:07:32 +08:00 ssh gateway |
![]() | 26 O3YwA1ENkb7i35XJ 2016-05-18 18:19:14 +08:00 ![]() 假设 A 的 IP 为 1.2.3.4, B 的 IP 为 4.3.2.1 在本地上执行: ssh -L 127.0.0.1:1234:4.3.2.1:22 -N [email protected] 含义为: 在本地监听 1234 号端口, 用于将 1.2.3.4 可连接的 4.3.2.1:22 的这个端口转发过来 -N 是代表连接之后, 不执行 shell 连接之后, 这个连接的窗口不要关, 然后当要复制文件到 B 的机器上的时候使用 scp -P 1234 xxx.file [email protected] 此处的 yyy 为登陆 B 机器时的账号, 就可以直接把文件复制到 B 机器上了. 你可以把上面的端口 1234 改为 22(当然前提是你本地的 22 号端口可用, 这样你用 scp 的时候, 就不用指定端口号了). 亲测可用. |
27 googlebot 2016-05-18 18:37:22 +08:00 via Android 没法破, linode vps 都这种情况,只有 80 , 443 可以访问,其他都被屏蔽, |
![]() | 28 SlipStupig 2016-05-18 18:40:32 +08:00 A 机器 ssh 端口转发到 B 机器的 SSH |
29 shizhenxiang 2016-05-18 18:52:35 +08:00 |
![]() | 30 cjyang1128 2016-05-18 18:57:22 +08:00 搜索 ssh -L 我经常都是在本地连只有内网 ip 的数据库 |
31 lualu2 2016-05-18 19:08:58 +08:00 @yangxiaoluck 这个又不需要权限. 你开的端口是在本地的,本地难道你都没权限? 这个软件相当于 ssh -D 模式. 你用 putty 之类-D 模式连到 A,就会自动开启一个本地的 socks 代理. 和 A 没有关系,A 那边就看到你是 ssh 连上去的,看不到其他现象,也不会新增端口. |
![]() | 32 shmilyin 2016-05-18 20:03:09 +08:00 ssh -R ssh -L 其中的一个,具体不太清楚用法了。可以查下相关资料 |
![]() | 33 uyhyygyug1234 2016-05-18 21:18:32 +08:00 |
34 quix 2016-05-18 21:21:14 +08:00 ![]() 这里有个最简单的方案: SSH 通过一个服连上一个另一个服,这里以通过 my-ssh-server-host 连上 github.com 举例 Host github.com ProxyCommand=ssh my-ssh-server-host.net "/bin/nc -w1 %h %p" /bin/nc 为充当跳板的服的 nc 的路径请自行替换确保正确 |
![]() | 37 snopy 2016-05-19 09:10:41 +08:00 加条路由不就解决了 |
![]() | 38 yangxiaoluck OP 我是用 ssh 在 A 机器上做端口映射,将 A 机器的 2020 端口映射到 B 机器的 22 端口,提示没有权限。 |
39 P0P 2016-05-19 11:13:40 +08:00 哈哈,正确的答案在这里, ssh 有 ProxyCommand 命令,可以参考这个 http://stackoverflow.com/questions/17372177/how-to-use-a-jumphost-jump-server-in-a-script 另外一个帖子找不到了,反正是通过跳板机中转一下,用 nc 命令在跳板机上转发包 |
![]() | 40 fallwithme 2016-05-19 13:41:19 +08:00 如果是 *nix 系统,在 ~/.ssh/config 里加个配置: Host A HostName xxx.xxx.xxx.xxx User xxx Host B HostName xxx.xxx.xxx.xxx User xxx ProxyCommand ssh A -W %h:%p 如果 SSH 版本不支持 -W 参数,那就用 nc : ProxyCommand ssh A nc %h %p 然后,就可以直接: ssh B 或者: scp file B:/tmp/ |
![]() | 41 heganj 2016-05-19 13:59:43 +08:00 |
![]() | 42 yangxiaoluck OP @heganj 这个可以登录 但是没法 copy |
![]() | 43 yangxiaoluck OP @P0P 你的方法可以登录, 怎么 copy 文件呢 |
44 mysteri0uss 2016-05-19 17:06:46 +08:00 正向-L ,反向-R , Socks-D |
![]() | 45 terry 2016-05-19 19:15:12 +08:00 临时用一下的话用 TCP Forwarding 思路是通过 A 机做转发,本机 2222 ---> B:22 ssh 2222:B:22 user@A 密码是 A 用户 user 的密码。用 netstat / ss / lsof -ni 可以看到本机上 2222 端口绑定到 loopback 在本机上 scp -P 2222 file [email protected]:/path/to 这时是 B 上用户 user 的密码。 实际生产环境应该都是用 Public Key authentication 密码都验证都禁用的... 长期要使用的话在 ~/.ssh/config 里给 A (中间跳板)加一个 Host 块 `ProxyCommand ssh A nc %h %p` |
![]() | 46 dark456852 2016-05-20 09:04:21 +08:00 本机挂 A 机器的 SS TUNNEL 就可以 直接上 B 机器了 |
![]() | 47 shily 2016-05-20 09:43:10 +08:00 @yangxiaoluck 如果你只是需要上传下载文件的话, sz/rz 可以解决。 |