use*_*101 5 bash sftp ubuntu macos
使用 sftp 从 Mac 到 Ubuntu 机器时,箭头键、退格键和 Tab 补全功能不起作用。具体来说,箭头键和退格键会产生字符序列,而制表符只会插入一个制表符。但是,当使用 sftp 从 Ubuntu 机器到 Mac 时,我没有任何问题。我无法弄清楚差异在哪里。我的目标是能够通过 sftp 进入 Ubuntu 机器并使用箭头键、退格键和制表符补全。
壳:
我已经在两台机器上尝试过zsh
(bash
从 /bin/sh 升级是大多数其他类似问题建议的修复)
SSHD_配置:
我已经在 Ubuntu 机器上的 sshd_config 文件中尝试了Subsystem sftp /usr/lib/openssh/sftp-server
两者。Subsystem sftp internal-sftp
Mac 正在使用/usr/libexec/sftp-server
.
我意识到这些设置是不同的,所以我怀疑这导致了差异,但我不知道到底是什么差异,也不知道如何解决它。我也找不到太多关于这些不同 sftp 服务器的文档。
谢谢您的任何建议!
小智 5
在终端中输入:
\nwhich sftp\n
Run Code Online (Sandbox Code Playgroud)\n如果结果是/usr/bin/sftp
,则意味着您使用的 macOS 内置 SFTP 版本与 GNU 版本相比已经过时。更多详细信息请参见此处。
您可以安装 Homebrew 版本 \xe2\x80\x94,它是 GNU 版本 \xe2\x80\x94
\nbrew install openssh\n
Run Code Online (Sandbox Code Playgroud)\n并列出openssh
安装路径:
brew list openssh\n
Run Code Online (Sandbox Code Playgroud)\n例如,Tou 会在这里看到一些二进制文件:
\n/usr/local/Cellar/openssh/8.4p1_2/.bottle/etc/ (12 files)\n/usr/local/Cellar/openssh/8.4p1_2/bin/scp\n/usr/local/Cellar/openssh/8.4p1_2/bin/sftp\n/usr/local/Cellar/openssh/8.4p1_2/bin/slogin\n/usr/local/Cellar/openssh/8.4p1_2/bin/ssh\n/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-add\n/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-agent\n/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-keygen\n/usr/local/Cellar/openssh/8.4p1_2/bin/ssh-keyscan\n/usr/local/Cellar/openssh/8.4p1_2/libexec/ (4 files)\n/usr/local/Cellar/openssh/8.4p1_2/sbin/sshd\n/usr/local/Cellar/openssh/8.4p1_2/share/man/ (15 files)\n
Run Code Online (Sandbox Code Playgroud)\n现在输入:
\nwhich sftp\n
Run Code Online (Sandbox Code Playgroud)\n结果是/usr/local/bin/sftp
,这是一个软链接/usr/local/Cellar/openssh/8.4p1_2/bin/sftp
然后尝试 Homebrew 版本的 SFTP 并享受它!
\n小智 1
with-readline 是一个小程序,允许 GNU Readline 库与任意程序一起使用,而无需重新编译这些程序。它对于改进基于终端的简单程序的用户界面非常有用,这些程序无论出于何种原因都没有被修改为使用 Readline 本身。关联
您可以安装 with-readline 以支持方向键和退格键。
但是,选项卡仅在本地端受支持,您无法从远程端完成文件名。
详细安装如下:
brew install with-readline
echo 'alias sftp="with-readline sftp"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1883 次 |
最近记录: |