V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tool2dx
V2EX  ›  然而并没有

openssh 协议貌似已经一统天下了。

  •  
  •   tool2dx · 14 天前 · 4744 次点击

    以前是 linux 内置,后来是 macos 内置,现在是 windows 内置。

    smb 已经完成了历史使命,可以安心退出舞台了。

    ps: 什么时候操作系统也统一一下就好了,现在写一个界面程序,要三套代码,真是晕死。

    76 条回复
    yannxia
        1
    yannxia  
       14 天前
    ···要么你再整理下文字,没看懂这两者的共同点
    Ipsum
        2
    Ipsum  
       14 天前   ❤️ 1
    没看懂 ssh 和 smb 有啥关系?
    tool2dx
        3
    tool2dx  
    OP
       14 天前
    @Ipsum ssh/sftp 和 smb 两者都是文件传输协议,但是 smb 被爆出过漏洞,而 ssh/sftp 一直很稳。

    严格意义上来说,文件传输并不需要两个协议,只留一个就足够了。
    Remember
        4
    Remember  
       14 天前   ❤️ 25
    手机貌似已经一统天下了。

    自行车已经完成了历史使命,可以安心退出舞台了。
    Yukineko
        5
    Yukineko  
       14 天前
    这两者的使用场景都不一样
    wheat0r
        6
    wheat0r  
       14 天前
    这是用古早 AI 生成的文字吗?
    nt0p
        7
    nt0p  
       14 天前
    SSH 和 SMB 解决的不是同一问题,何来统一天下。
    Sendya
        8
    Sendya  
       14 天前
    我也没看懂什么关系,smb 能共享打印机吧,ssh/sftp 不是反射连接的情况下能做得到吗
    kokutou
        9
    kokutou  
       14 天前 via Android
    Windows 什么时候能直接挂载 ssh 目录再说吧
    tool2dx
        10
    tool2dx  
    OP
       14 天前
    @nt0p openssh 里 ssh 和 sftp 是一整套,合起来就是 smb 文件传输协议的替代啊。

    本来就是联系在一起的,为啥要分开讨论。
    coolcoffee
        11
    coolcoffee  
       14 天前   ❤️ 3
    场景都不一样呀。


    ssh 公网用的多,需要公私钥参与的,性能消耗还和算法方式相关。

    smb 更多的是可信任内网用的,nas 这种低功耗存储设备要是大量做加解密运算这个 IO 性能肯定非常感人。
    adoal
        12
    adoal  
       14 天前   ❤️ 3
    SMB 对标的是 NFS 和其它网络文件系统协议。SSH 对标的是 Telnet 、Rlogin 等登录协议和 FTP 等文件传输协议。
    虽然 SSH 上也可以套一层,做成有 POSIX 语义的 SSHFS 文件系统,但是在实际使用上,只适合顺序写入的整个文件复制场景,并不适合频繁随机写入的场景,而 SMB/NFS/...是没问题的。
    tagtag
        13
    tagtag  
       14 天前
    场景只在文件传输上有一点重合
    hingle
        14
    hingle  
       14 天前
    而且,OpenSSH 不是协议
    pckillers
        15
    pckillers  
       14 天前   ❤️ 1
    哪天 sftp 可以直接双击运行游戏 exe 了,我再信一下楼主的话
    deplives
        16
    deplives  
       14 天前
    ssh 和 smb 才是协议,openssh 只是 ssh 的一种实现
    而且,啥时候 ssh 协议成了文件传输协议了,建议重学
    tool2dx
        17
    tool2dx  
    OP
       14 天前
    @deplives 我之所以说 openssh ,是因为 openssh 包是一个集合体,包含了 ssh/sftp/scp 三种协议。
    w568w
        18
    w568w  
       14 天前   ❤️ 13
    槽点太多了。

    1.「 openssh 协议」:openssh 不是协议,是 OpenBSD 开发的一个 SSH 协议实现;

    2.「是 linux 内置」:Linux 从没内置过 OpenSSH ,会预装 OpenSSH 的发行版也没几个,我用过的各系发行版( Debian 、Fedora 、Arch……)都是要自己敲命令安装的;

    3.「 smb 已经完成了历史使命」:SSH 是安全 Shell 协议,能文件传输的那个协议叫 SFTP ,只是 SSH 的一个扩展(例如 Dropbear 这个 SSH 实现就很可能不支持 SFTP );另外,就算你口误了,SMB 也不是文件传输协议,它是文件、打印机、串口、IPC 共享协议。这两者使用场景不完全重合:SFTP 没法直接分享串口和打印机,SMB 协议也不支持启动 Shell 会话。
    hertzry
        19
    hertzry  
       14 天前
    大清亡了,Windows 早就内置 OpenSSH 了。
    Tink
        20
    Tink  
       14 天前
    这两者没关系呀

    smb 对应的应该是 webdav nfs afp 这类吧

    ssh 对应的是 telent
    hefish
        21
    hefish  
       14 天前
    大家散了吧。op 其实是来随便找个东西解解压的。
    tool2dx
        22
    tool2dx  
    OP
       14 天前
    @w568w "这两者使用场景不完全重合"

    安装 openssh 90%是为了传文件,安装 smb 90%也是为了传文件,至少功能重叠一大半了。

    剩下的共享打印之类的协议,已经可以走标准 https 管道了。
    Tink
        23
    Tink  
       14 天前 via Android   ❤️ 1
    @tool2dx 安装 openssh 是为了传文件?
    weixiaoD
        24
    weixiaoD  
       14 天前 via Android
    看得我有点莫名其妙。。
    tool2dx
        25
    tool2dx  
    OP
       14 天前
    @Tink 肯定啊,openssh 传文件速度很快的。smb 基本上是 windows 独享的,linux/mac 上你总不可能用 ftp 协议来传吧。
    czwstc
        26
    czwstc  
       14 天前   ❤️ 8
    @tool2dx 首先不存在安装 openssh 90%是为了传文件。
    可能你的工作流对你了解现状产生了些许误解
    Tink
        27
    Tink  
       14 天前 via Android
    @tool2dx 有点离谱,第一次听说这种说法
    Tink
        28
    Tink  
       14 天前 via Android
    你意思大家用 ssh 是为了传文件吗
    tool2dx
        29
    tool2dx  
    OP
       14 天前
    @czwstc
    @Tink 那我就比较好奇了,你们是用 rclone 之类自有协议同步文件,不走标准的 sftp 吗?
    tool2dx
        30
    tool2dx  
    OP
       14 天前
    @Tink “你意思大家用 ssh 是为了传文件吗”

    咬文嚼字没意思,你知道我指的是 openssh 里的 sftp 协议。
    w568w
        31
    w568w  
       14 天前   ❤️ 2
    @tool2dx 本来不想回复了,你这句话成功又把我炸回来了:

    「安装 openssh 是为了传文件?肯定啊,openssh 传文件速度很快的」:传文件有很多专门的工具,比如 rsync 。rsync 有实时压缩、差分传输、文件系统复制等高级特性,SFTP 无论性能还是功能都没法比(当然 openssh 的 SFTP 大部分情况下传文件都可以跑满带宽。但这一点 FTP 、WebDAV 都可以做到)。rsync 支持 Linux 和 macOS ,Windows 上也有 cwrsync 项目。

    「 smb 基本上是 windows 独享的」:你听说过 Samba 项目和 CIFS 文件系统吗?搜一下这两个是谁开发的、主要用在什么系统里。macOS 我不熟悉,但我知道 smb 在访达里是实打实的一等公民;

    「 linux/mac 上你总不可能用 ftp 协议来传吧」:为什么不能?
    StevenRCE0
        32
    StevenRCE0  
       14 天前
    一般这种场景在机子之间传文件会用 smb 或者 nfs 吧 emmm ,大一点的文件就会看出性能差距了;而且也不会觉得剩下的协议都可以走 https ( TLS ) 管道,你不觉得流量大一点就会不断重传延迟最后干穿 buffer 么
    Tink
        33
    Tink  
       14 天前
    @tool2dx #29 不是,我意思是,我第一次听说大家主要用 openssh 来传文件
    phrack
        34
    phrack  
       14 天前
    不懂不要瞎 jb 装懂,被拆穿了还在那狡辩 “咬文嚼字没意思,你知道我指的是 openssh 里的 sftp 协议。”
    Tink
        35
    Tink  
       14 天前
    @tool2dx #29 你要说为了装逼不用 ui ,我都觉得比你说的 90%是为了传文件靠谱。。
    tool2dx
        36
    tool2dx  
    OP
       14 天前
    @StevenRCE0 smb 和 sftp/ssh/scp 都有 buffer 流量控制,传大文件还是比较轻松,包括续传。
    cnbatch
        37
    cnbatch  
       14 天前
    SSH 常见用途是拿来远程登录、管理主机。传输文件只是个扩展功能而已。

    再说了,SMB 支持多通道,SSH 并不能。

    小提示:mac 内置 smb 支持
    https://support.apple.com/zh-cn/guide/mac-help/mchlp1660/15.0/mac/15.0
    https://support.apple.com/zh-cn/102010
    czwstc
        38
    czwstc  
       14 天前
    @tool2dx 对于我来说,正好和你的 sftp 代替 smb 相反。
    传输文件都是内网有一台 SMB Server (群晖)。
    然后本地电脑在网页界面/SMB 挂载 Folder 上传文件
    Linux 服务器 走 wget 或者 smb 挂载的形式拿文件。
    windows 走 nfs 或者 smb 。
    还有 Vmware 的机器走 NFS 。

    sftp 只有在个人买了台 Linux 的云服务器,然后本地传文件上去才会使用 sftp 。
    更多用于点对点传输文件,大规模部署的话,至少我不太用。
    tool2dx
        39
    tool2dx  
    OP
       14 天前
    @Tink “我第一次听说大家主要用 openssh 来传文件”

    也许我见识少,我真以为大家都是走 sftp 上传文件来着。
    macaodoll
        40
    macaodoll  
       14 天前
    大胸弟你在说什么?怎么这么拎不清呢
    Tink
        41
    Tink  
       14 天前
    @tool2dx #29 另外 shell 下,小文件传输大概率是这边 python -m 起服务,那边 wget 拉

    大文件一定得上 rsync
    XiLingHost
        42
    XiLingHost  
       14 天前
    只见过临时传输少量小文件的场景用 sftp 的,或者是 lrzsz 传输,大文件或者大量小文件基本上还是用的正经文件共享协议比如 cifs/nfs
    tool2dx
        43
    tool2dx  
    OP
       14 天前
    @w568w 我发帖目的,就是为了表明现在用一把好锤子能敲大部分钉子。只要安心维护一套工具流就行。

    你又弄了那么多文件传输工具,个人感觉没必要。
    duchenpaul
        44
    duchenpaul  
       14 天前
    @tool2dx ftp: 咳咳 我还活着
    nfs: 我算啥?
    webdev:???
    Love4Taylor
        45
    Love4Taylor  
       14 天前
    你也是挺逆天的,先去搞清楚 SMB 和 SSH 设计出来的用途再说吧。

    > 安装 openssh 90%是为了传文件,安装 smb 90%也是为了传文件,至少功能重叠一大半了。

    真的逆天。
    opscoffeecn
        46
    opscoffeecn  
       14 天前 via Android
    OP 关于这个 ssh/smb 的认知有限,可能是跟自己的使用场景有关系,不过这都没关系,很正常。不过下边这么多苦口婆心科普的,认真学习下就行,没必要反驳/狡辩
    xiaket
        47
    xiaket  
       14 天前
    too young, sometimes naive. 这句套话放这儿真合适. 你自己在技术圈多泡几年, 回头看看自己这个帖子, 看会脸红不.
    tool2dx
        48
    tool2dx  
    OP
       14 天前 via Android
    @Love4Taylor 你猜我标题为什么写 openssh 而不是 ssh?
    1iuh
        49
    1iuh  
       14 天前
    我每天干活全程在用“openssh” ,但是一年也都传不了几次文件。OP 你这个 90%是不是可以再考虑一下。
    Love4Taylor
        50
    Love4Taylor  
       14 天前
    @tool2dx OpenSSH “协议” 是吧,和 SMB 对标是吧,还有都说了让你去了解下 SMB 和 SSH 是分别解决什么问题的。别给自己挽尊了,犟没有任何意义。(拿 SSH 来替代 SMB/NFS/WebDAV 等用作数据存储日常传输的我们一般建议宛平南路 600 号
    tool2dx
        51
    tool2dx  
    OP
       14 天前   ❤️ 1
    @Love4Taylor 标题写 openssh 是因为这是一个整体包,不是 ssh 单独一个协议,还有 sftp ,还有 scp 。帖子重点是后面两个协议,不是第一个。
    Love4Taylor
        52
    Love4Taylor  
       14 天前 via iPhone
    @tool2dx 有没有可能 SFTP SCP 都是基于 SSH 的实现相当于扩展了个功能,而 SSH 本身就不是设计给日常文件传输用的。算了反正讲了你也不听,你自己嗨去吧,block 了
    StarsunYzL
        53
    StarsunYzL  
       14 天前
    @tool2dx 安装 openssh 90%是为了传文件??迷惑发言,不要太离谱,绝大部分人用 SSH 的主要目的都不是传文件吧
    cyningxu
        54
    cyningxu  
       14 天前 via Android
    我觉得 http 才是一统天下,又可以传输文件,又可以打开 webshell
    zuotun
        55
    zuotun  
       14 天前   ❤️ 2
    op 浑身上下嘴最硬,说起 openssh 谁第一反应会是 sftp 啊,另外传输文件不能用 rsync rclone 这两个吗?
    tap91624
        56
    tap91624  
       14 天前   ❤️ 3
    转人工
    falcon05
        57
    falcon05  
       14 天前 via iPhone   ❤️ 1
    管理把你的主题移到了 “ 然而并没有” ,这就是他的回答吗?
    EricXuu
        58
    EricXuu  
       14 天前 via Android
    一般开发 scp 用的都比 sftp 多吧
    kid1412621
        59
    kid1412621  
       14 天前 via iPhone
    @tool2dx #25 smb 不是都支持么…用过的主流 Linux distro ,甚至 openwrt 都支持啊…
    marquina
        60
    marquina  
       14 天前 via iPhone
    下次心情不好的时候可以点进本贴看看 hh
    cloudzhou
        61
    cloudzhou  
       14 天前 via iPhone
    @adoal 说的已经是接近最科普的了,op 学习一下即可,没必要挽尊了。openssh 99% 以上的场景,都是为了远程 shell ,为了文件的话,只能说内部文件系统支持的不够好
    docx
        62
    docx  
       14 天前 via iPhone
    ssh 不是用来远程连接 shell 吗,sftp 虽然会用但挺少的……
    airqj
        63
    airqj  
       14 天前
    要不楼主搜一下 ssh 的全称.....
    fo2w
        64
    fo2w  
       14 天前
    符合常见的民科
    SmileMachine
        65
    SmileMachine  
       14 天前   ❤️ 1
    @tool2dx #43 问题是 openssh 的主业就不是传文件啊,这就好比说用瑞士军刀能干很多事情,所以别的工具都没用了。你觉得没必要是你不需要,并不是那些工具的存在没有意义。
    mcfog
        66
    mcfog  
       14 天前
    这个节点就很妙
    george110
        67
    george110  
       13 天前
    我大概 1%的情况使用 sftp ,99%是远程 shell 。
    cgtx
        68
    cgtx  
       13 天前
    很多程序员抱怨找不到工作,我觉得楼主的语言很能说明一些问题
    littlecreek
        69
    littlecreek  
       13 天前
    看了一会我都能感觉到楼主的尴尬...
    Eureka0
        70
    Eureka0  
       13 天前
    楼主成功让我发现了这个节点
    mikewang
        71
    mikewang  
       13 天前
    打开 macOS 的文件共享,默认就是 smb:// 协议。smb 何时退出舞台了?
    [macOS 系统设置 -> 通用 -> 共享 -> 文件共享]
    https://support.apple.com/zh-cn/guide/mac-help/mh17131/mac

    我以为是拿 OpenSSH 与 Dropbear 之类的程序做对比,说 OpenSSH 一统天下还是合理的。
    querysecret
        72
    querysecret  
       13 天前
    “安装 openssh 90%是为了传文件”,我安装 99%都是为了编译别的库,然后需要高版本 ssh
    danhahaha
        73
    danhahaha  
       13 天前
    你们不要再怼楼主了,楼主再强大的内心也经不住这么怼,我要把这个帖子收藏,下次遇到尴尬事情就拿这个复盘治愈
    Kr1stin
        74
    Kr1stin  
       13 天前
    openssh 99.99% 是用来 连接管理服务器的,不是所谓的传文件...
    sftp 的场景 0.01% 吧

    这一点 你如果没有搞清楚,不怪大家喷你。
    zrr1999
        75
    zrr1999  
       13 天前
    @tool2dx 安装 openssh 99.99% 是为了远程连接服务器
    deplives
        76
    deplives  
       12 天前
    op 对各种网络协议的理解简直离谱,建议下次用 DNS 协议传文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:02 · PVG 13:02 · LAX 21:02 · JFK 00:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.