Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
yangxiaoluck
V2EX  ›  Linux

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

  •  
  •   yangxiaoluck · May 18, 2016 · 7351 views
    This topic created in 3825 days ago, the information mentioned may be changed or developed.

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

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


    我就是这样的, AB 俩 SS 服务器, B 被封了,通过 A 的 SS 代理才可以本地 SSH 到 B 。
    congeec
    congeec
    May 18, 2016
    12
    一条命令搞定,在跳板机上执行
    socat tcp-l:3333,fork tcp:45.32.22.151:22
    socat tcp-listen:跳板机监听端口,fork,reuseaddr tcp:目标 B 机器 IP 地址:目标 B 机器端口

    然后在你本地的机器上直接 `ssh 跳板机 IP 地址 -p 跳板机监听端口`
    learnshare
    learnshare
    May 18, 2016
    13
    跳过跳板不会被打死?
    lxf1992521
    lxf1992521
    May 18, 2016
    14
    这个不是 SSH 三大转发之认证转发的功能吗?
    fahai
    fahai
    May 18, 2016
    15
    果然最大的漏洞就是人。。
    yangxiaoluck
    yangxiaoluck
    OP
    May 18, 2016
    16
    @congeec 不行额 端口权限只有 root 有
    lualu2
    lualu2
    May 18, 2016
    17
    不会命令行的话就用 myentuunel 连接 A, 然后会产生一个 socks 代理,然后本地 ssh 工具通过这个 socks 代理连接 B
    yangxiaoluck
    yangxiaoluck
    OP
    May 18, 2016
    19
    @lualu2 会命令行啊 主要是没有端口权限 需要 root
    Orzzzz
    Orzzzz
    May 18, 2016
    20
    @fahai 没错。
    ddd2500
    ddd2500
    May 18, 2016
    21
    Bitvise 的话, 可以 A 开启 ssh 代理,
    连接 B 时通过 A 的 ssh 代理。
    congeec
    congeec
    May 18, 2016
    22
    @yangxiaoluck 任何端口都没权限?不可能吧。难道你的跳板机只开 22 端口?你试试 65535 这种数比较大的端口
    wangxn
    wangxn
    May 18, 2016
    23
    这不就是 SSH 反向代理吗?根本用不着第三方软件。
    ghostheaven
    ghostheaven
    May 18, 2016 via Android
    24
    1.把 A 的 key 放在本地
    2.ssh -D1080 A ,连到 A 并本地开 1080 socks 代理
    3.本地配置.ssh/config,连接 B 的使用代理 ProxyCommand ,可以用 nc 或者 connect
    4.本地直接连接 B
    glasslion
    glasslion
    May 18, 2016
    25
    ssh gateway
    O3YwA1ENkb7i35XJ
    O3YwA1ENkb7i35XJ
    May 18, 2016❤️2
    26
    假设 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
    googlebot
    May 18, 2016 via Android
    27
    没法破, linode vps 都这种情况,只有 80 , 443 可以访问,其他都被屏蔽,
    SlipStupig
    SlipStupig
    May 18, 2016
    28
    A 机器 ssh 端口转发到 B 机器的 SSH
    cjyang1128
    cjyang1128
    May 18, 2016
    30
    搜索 ssh -L 我经常都是在本地连只有内网 ip 的数据库
    lualu2
    lualu2
    May 18, 2016
    31
    @yangxiaoluck 这个又不需要权限. 你开的端口是在本地的,本地难道你都没权限?
    这个软件相当于 ssh -D 模式. 你用 putty 之类-D 模式连到 A,就会自动开启一个本地的 socks 代理. 和 A 没有关系,A 那边就看到你是 ssh 连上去的,看不到其他现象,也不会新增端口.
    shmilyin
    shmilyin
    May 18, 2016
    32
    ssh -R ssh -L 其中的一个,具体不太清楚用法了。可以查下相关资料
    quix
    quix
    May 18, 2016❤️1
    34
    这里有个最简单的方案:

    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
    quix
    May 18, 2016
    35
    @quix 以上配置请加到 ~/.ssh/config
    xurubin
    xurubin
    May 19, 2016
    36
    @xqin +1
    snopy
    snopy
    May 19, 2016
    37
    加条路由不就解决了
    yangxiaoluck
    yangxiaoluck
    OP
    May 19, 2016
    38
    我是用 ssh 在 A 机器上做端口映射,将 A 机器的 2020 端口映射到 B 机器的 22 端口,提示没有权限。
    P0P
    P0P
    May 19, 2016
    39
    哈哈,正确的答案在这里, ssh 有 ProxyCommand 命令,可以参考这个 http://stackoverflow.com/questions/17372177/how-to-use-a-jumphost-jump-server-in-a-script
    另外一个帖子找不到了,反正是通过跳板机中转一下,用 nc 命令在跳板机上转发包
    fallwithme
    fallwithme
    May 19, 2016
    40
    如果是 *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
    yangxiaoluck
    OP
    May 19, 2016
    42
    @heganj 这个可以登录 但是没法 copy
    yangxiaoluck
    yangxiaoluck
    OP
    May 19, 2016
    43
    @P0P 你的方法可以登录, 怎么 copy 文件呢
    mysteri0uss
    mysteri0uss
    May 19, 2016
    44
    正向-L ,反向-R , Socks-D
    terry
    terry
    May 19, 2016
    45
    临时用一下的话用 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
    dark456852
    May 20, 2016
    46
    本机挂 A 机器的 SS TUNNEL 就可以 直接上 B 机器了
    shily
    shily
    May 20, 2016
    47
    @yangxiaoluck 如果你只是需要上传下载文件的话, sz/rz 可以解决。
    lumen
    lumen
    May 29, 2016
    48
    @xqin 这个方法可靠, SSH 可以做端口隧道
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1719 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1230ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.