本地机器能够直接通过 ssh 登陆 A 机器, A 机器可以通过 ssh 登陆 B 机器,但是本地不能直接登陆 B 机器,求破 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
yangxiaoluck
V2EX    Linux

本地机器能够直接通过 ssh 登陆 A 机器, A 机器可以通过 ssh 登陆 B 机器,但是本地不能直接登陆 B 机器,求破

  •  
  •   yangxiaoluck 2016-05-18 16:44:40 +08:00 6348 次点击
    这是一个创建于 3435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt,需要本地直接登陆 B 机器

    48 条回复    2016-05-29 12:45:04 +08:00
    yangxiaoluck
        1
    yangxiaoluck  
    OP
       2016-05-18 16:46:21 +08:00
    跪求高手解答,每次拷贝文件都是从本地拷贝到 A ,在从 A 转到 B 真特么醉了
    erevus
        2
    erevus  
       2016-05-18 16:46:31 +08:00
    你是要绕过跳板机登机器?我要告诉你司运维
    yangxiaoluck
        3
    yangxiaoluck  
    OP
       2016-05-18 16:53:42 +08:00
    @erevus 被你发现了 哈哈
    domty
        4
    domty  
       2016-05-18 16:57:01 +08:00
    那在 b 机器上记录下你的 ssh-key 不就行了,
    前提是你能拿到 b 机器的 root 权限。
    YUX
        5
    YUX  
    PRO
       2016-05-18 16:57:07 +08:00 via iPhone
    A 上搭个 SS?
    scgy5555
        6
    scgy5555  
       2016-05-18 16:58:18 +08:00
    vpn 可破 能连外网直接走 git
    至于能不能挂 vpn 还是要找运维
    yangxiaoluck
        7
    yangxiaoluck  
    OP
       2016-05-18 16:59:36 +08:00
    @domty 加了 key 也登陆不了的,我试过了
    A 机器上我+了 key 就能登陆
    Lycnir
        8
    Lycnir  
       2016-05-18 17:00:29 +08:00
    作为一名运维,我保证不打死你。。哈哈哈
    yangxiaoluck
        9
    yangxiaoluck  
    OP
       2016-05-18 17:01:01 +08:00
    @Lycnir 那你告诉我怎么破 然后打死我
    DingGuitao
        10
    DingGuitao  
       2016-05-18 17:15:33 +08:00
    VPN 或者 ssh 隧道
    mortal
        11
    mortal  
       2016-05-18 17:20:18 +08:00


    我就是这样的, AB 俩 SS 服务器, B 被封了,通过 A 的 SS 代理才可以本地 SSH 到 B 。
    congeec
        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 跳板机监听端口`
    learnshare
        13
    learnshare  
       2016-05-18 17:26:16 +08:00
    跳过跳板不会被打死?
    lxf1992521
        14
    lxf1992521  
       2016-05-18 17:28:49 +08:00
    这个不是 SSH 三大转发之认证转发的功能吗?
    fahai
        15
    fahai  
       2016-05-18 17:32:03 +08:00
    果然最大的漏洞就是人。。
    yangxiaoluck
        16
    yangxiaoluck  
    OP
       2016-05-18 17:38:52 +08:00
    @congeec 不行额 端口权限只有 root 有
    lualu2
        17
    lualu2  
       2016-05-18 17:44:58 +08:00
    不会命令行的话就用 myentuunel 连接 A, 然后会产生一个 socks 代理,然后本地 ssh 工具通过这个 socks 代理连接 B
    ShiHou
        18
    ShiHou  
       2016-05-18 17:50:08 +08:00
    yangxiaoluck
        19
    yangxiaoluck  
    OP
       2016-05-18 17:50:28 +08:00
    @lualu2 会命令行啊 主要是没有端口权限 需要 root
    Orzzzz
        20
    Orzzzz  
       2016-05-18 17:50:53 +08:00
    @fahai 没错。
    ddd2500
        21
    ddd2500  
       2016-05-18 17:52:12 +08:00
    Bitvise 的话, 可以 A 开启 ssh 代理,
    连接 B 时通过 A 的 ssh 代理。
    congeec
        22
    congeec  
       2016-05-18 17:54:24 +08:00
    @yangxiaoluck 任何端口都没权限?不可能吧。难道你的跳板机只开 22 端口?你试试 65535 这种数比较大的端口
    wangxn
        23
    wangxn  
       2016-05-18 17:55:55 +08:00
    这不就是 SSH 反向代理吗?根本用不着第三方软件。
    ghostheaven
        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
    glasslion
        25
    glasslion  
       2016-05-18 18:07:32 +08:00
    ssh gateway
    O3YwA1ENkb7i35XJ
        26
    O3YwA1ENkb7i35XJ  
       2016-05-18 18:19:14 +08:00   2
    假设 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 的时候, 就不用指定端口号了).

    亲测可用.
    googlebot
        27
    googlebot  
       2016-05-18 18:37:22 +08:00 via Android
    没法破, linode vps 都这种情况,只有 80 , 443 可以访问,其他都被屏蔽,
    SlipStupig
        28
    SlipStupig  
       2016-05-18 18:40:32 +08:00
    A 机器 ssh 端口转发到 B 机器的 SSH
    shizhenxiang
        29
    shizhenxiang  
       2016-05-18 18:52:35 +08:00
    cjyang1128
        30
    cjyang1128  
       2016-05-18 18:57:22 +08:00
    搜索 ssh -L 我经常都是在本地连只有内网 ip 的数据库
    lualu2
        31
    lualu2  
       2016-05-18 19:08:58 +08:00
    @yangxiaoluck 这个又不需要权限. 你开的端口是在本地的,本地难道你都没权限?
    这个软件相当于 ssh -D 模式. 你用 putty 之类-D 模式连到 A,就会自动开启一个本地的 socks 代理. 和 A 没有关系,A 那边就看到你是 ssh 连上去的,看不到其他现象,也不会新增端口.
    shmilyin
        32
    shmilyin  
       2016-05-18 20:03:09 +08:00
    ssh -R ssh -L 其中的一个,具体不太清楚用法了。可以查下相关资料
    quix
        34
    quix  
       2016-05-18 21:21:14 +08:00   1
    这里有个最简单的方案:

    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 的路径请自行替换确保正确
    quix
        35
    quix  
       2016-05-18 21:22:07 +08:00
    @quix 以上配置请加到 ~/.ssh/config
    xurubin
        36
    xurubin  
       2016-05-19 06:36:09 +08:00
    @xqin +1
    snopy
        37
    snopy  
       2016-05-19 09:10:41 +08:00
    加条路由不就解决了
    yangxiaoluck
        38
    yangxiaoluck  
    OP
       2016-05-19 10:11:04 +08:00
    我是用 ssh 在 A 机器上做端口映射,将 A 机器的 2020 端口映射到 B 机器的 22 端口,提示没有权限。
    P0P
        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 命令在跳板机上转发包
    fallwithme
        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/
    yangxiaoluck
        42
    yangxiaoluck  
    OP
       2016-05-19 14:36:49 +08:00
    @heganj 这个可以登录 但是没法 copy
    yangxiaoluck
        43
    yangxiaoluck  
    OP
       2016-05-19 14:46:50 +08:00
    @P0P 你的方法可以登录, 怎么 copy 文件呢
    mysteri0uss
        44
    mysteri0uss  
       2016-05-19 17:06:46 +08:00
    正向-L ,反向-R , Socks-D
    terry
        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`
    dark456852
        46
    dark456852  
       2016-05-20 09:04:21 +08:00
    本机挂 A 机器的 SS TUNNEL 就可以 直接上 B 机器了
    shily
        47
    shily  
       2016-05-20 09:43:10 +08:00
    @yangxiaoluck 如果你只是需要上传下载文件的话, sz/rz 可以解决。
    lumen
        48
    lumen  
       2016-05-29 12:45:04 +08:00
    @xqin 这个方法可靠, SSH 可以做端口隧道
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6140 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:25 PVG 10:25 LAX 19:25 JFK 22:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86