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

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

  •  
  •   tool2dx · 2 天前 · 4216 次点击

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

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

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

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

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

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

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


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

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

    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  
       2 天前
    大清亡了,Windows 早就内置 OpenSSH 了。
    Tink
        20
    Tink  
       2 天前
    这两者没关系呀

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

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

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

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

    咬文嚼字没意思,你知道我指的是 openssh 里的 sftp 协议。
    w568w
        31
    w568w  
       2 天前   ❤️ 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  
       2 天前
    一般这种场景在机子之间传文件会用 smb 或者 nfs 吧 emmm ,大一点的文件就会看出性能差距了;而且也不会觉得剩下的协议都可以走 https ( TLS ) 管道,你不觉得流量大一点就会不断重传延迟最后干穿 buffer 么
    Tink
        33
    Tink  
       2 天前
    @tool2dx #29 不是,我意思是,我第一次听说大家主要用 openssh 来传文件
    phrack
        34
    phrack  
       2 天前
    不懂不要瞎 jb 装懂,被拆穿了还在那狡辩 “咬文嚼字没意思,你知道我指的是 openssh 里的 sftp 协议。”
    Tink
        35
    Tink  
       2 天前
    @tool2dx #29 你要说为了装逼不用 ui ,我都觉得比你说的 90%是为了传文件靠谱。。
    tool2dx
        36
    tool2dx  
    OP
       2 天前
    @StevenRCE0 smb 和 sftp/ssh/scp 都有 buffer 流量控制,传大文件还是比较轻松,包括续传。
    cnbatch
        37
    cnbatch  
       2 天前
    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  
       2 天前
    @tool2dx 对于我来说,正好和你的 sftp 代替 smb 相反。
    传输文件都是内网有一台 SMB Server (群晖)。
    然后本地电脑在网页界面/SMB 挂载 Folder 上传文件
    Linux 服务器 走 wget 或者 smb 挂载的形式拿文件。
    windows 走 nfs 或者 smb 。
    还有 Vmware 的机器走 NFS 。

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

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

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

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

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

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

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

    这一点 你如果没有搞清楚,不怪大家喷你。
    zrr1999
        75
    zrr1999  
       23 小时 21 分钟前
    @tool2dx 安装 openssh 99.99% 是为了远程连接服务器
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2834 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:38 · PVG 19:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.