在 bash 中使用 ssh 登录到另一台计算机时,将文件下载到本地硬盘的最佳方法是什么。我知道 sftp,但它并不方便,例如它缺少目录名称的制表符补全。我正在使用 Ubuntu 8.04.1 。我没有公共 IP,也不想设置动态动态 DNS 解决方案。
6 回答
我也在运行 Ubuntu 8.04.1,如果我输入
$ scp me@myserver.mydomain.com:.bashr<TAB>
我确实得到了选项卡完成(即 bash 正在连接到我的服务器并从那里的文件系统获取完成结果)。然后
$ scp me@myserver.mydomain.com:.bashrc .
将我的 .bashrc 从我的服务器复制到我本地机器上的当前目录。
如果您没有得到这个,请尝试sudo apt-get install bash-completion
,并检查您的 .bashrc 是否包含以下行(默认情况下我的行):
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
鱼呢?***通过 ***Sh***ell 传输文件 - 您可以在控制台中使用 Midnight Commander:
$ sudo apt-get install mc
$ mc
然后按F9 ; Right(对于 Right 面板)-> Shell link 键入远程主机的 ssh 链接。在提示符处输入机器名称,指定:
user@host
系统将提示输入密码(或自动登录,如果您的 SSH 密钥已为此设置)
现在您可以浏览远程文件系统,根据需要选择并复制 (F5)。
我不知道。
我会 $ scp host:file locallocation
据我所知,没有简单的 scp-on-steroids 可以让您在远程文件夹结构上自动完成。如果您只想安装远程文件夹,请查看sshfs。或者只是尝试在 Nautilus 中使用 ssh://... 挂载远程目录。
我实际上喜欢使用命令行 SCP 客户端。:) 我不知道它是怎么做到的,但我在 Ubuntu 上的 SCP(来自 openssh-client 1:4.7p1-8ubuntu1.2)实际上在我通常通过公钥进行身份验证的主机上对远程目录和文件进行制表符补全。