Mon*_*sto 25 google-chrome file-transfer google-chrome-extensions
有没有办法使用 Google Chrome 远程桌面插件在远程连接的计算机之间传输文件?
如果没有,是否有一种简单的方法可以在连接的计算机之间传输文件?
ccp*_*zza 27
这是一个笑话的答案,但由于目标和主机之间支持复制和粘贴,因此在不求助于中间云存储的情况下复制文件的极客方法是:
首先,在源机器上启动一个 Python 控制台并输入:
base64data = open('myfile.jpg','rb').read().encode('base64')
open('myfile.txt','w').write(base64data)
Run Code Online (Sandbox Code Playgroud)
接下来,myfile.txt
使用文本编辑器打开文件并复制内容。然后在目标机器上将内容粘贴到一个名为myfile.txt
和控制台类型的新文件中:
data = open('myfile.txt').read().decode('base64')
open('myfile.jpg','wb').write(data)
Run Code Online (Sandbox Code Playgroud)
这些片段可以提取到脚本中,以避免每次都打字。
如果您没有 Python,或者您的两台机器都运行 Windows 并且安装了Total Commander,那么步骤会更简单:
在源上:选择您的文件,然后选择Files > Encode file。.b64
将在另一个面板中创建相应的- 打开它 ( F3) 并复制内容 ( Ctr+ a, Ctr+ c)。
在目标上:粘贴到带有.b64
扩展名的新文件中,然后使用Files > Decode file。
另一个替代应用程序是notepad++,带有内置的 mimetools 插件,可以进行 base64 编码/解码(插件 -> Mime 工具 > 64 编码/解码)。
OSX 和大多数 Linux 系统通常带有不止一种控制台 base64 编码器。这应该可以在 ootb 中运行而无需安装任何东西:
## encode to base64
openssl base64 -in myfile.jpg -output myfile.jpg.b64
## OR on some systems `-out` should be used instead of `-output`
openssl base64 -in myfile.jpg -out myfile.jpg.b64
## encode to base64 on Windows (recent versions)
certutil -encode myfile.jpg myencodedfile.jpg.b64
## decode from base64
openssl base64 -d -in myfile.jpg.b64 -output myfile.jpg
## OR on some systems `-out` should be used instead of `-output`
openssl base64 -d -in myfile.jpg.b64 -out myfile.jpg
## decode base64 on Windows
certutil -decode myencodedfile.jpg.b64 myfile.jpg
Run Code Online (Sandbox Code Playgroud)
省略-output...
部分将打印到标准输出。
OSX 和 Ubuntu 中都存在另一个 ootb 实用程序:
## encode to base64
base64 < myfile.jpg > myfile.jpg.b64
## decode from base64 (Linux) (note the lowercase 'd')
base64 -d < myfile.jpg.b64 > myfile.jpg
## decode from base64 (OSX) (note the uppercase 'D')
base64 -D < myfile.jpg.b64 > myfile.jpg
Run Code Online (Sandbox Code Playgroud)
如果源/目标操作系统上有相应的命令行工具,则可以直接编码到剪贴板。
在 OSX 上有内置pbcopy
和pbpaste
,在 Linux(在 xorg 中)有xclip,在 Windows 上有clip.exe,这意味着将文件编码到剪贴板可以简化为(例如对于 OSX):
base64 < myfile.jpg | pbcopy
Run Code Online (Sandbox Code Playgroud)
现在把笑话放在一边。如果您需要在两台机器之间传输文件(无论您使用什么连接),请使用 SSH,它提供scp
. 如果一个或两个盒子都在防火墙/路由器后面,则使用跳转服务器(即暴露于互联网的服务器,可能是VPS)。您需要有一个从目标框到跳转服务器的永远在线的链接,配置端口转发,然后在跳转服务器上的转发端口上使用 SCP。在 A->B->C hop 场景中,您需要在A上有一个 SSH 客户端,并在B和C上运行 SSH 服务器。
一旦您从 box C配置了传出连接和端口转发 (如果您以前从未这样做过,这可能会很棘手),您就可以从 box A通过 SSH 连接,并使用您的文件中定义的配置文件,类似于:~/.ssh/config
Host jump
Hostname hostname_C
User username_C
Port portnumber_C
ProxyJump username_B@hostname_B:portnumber_B
Run Code Online (Sandbox Code Playgroud)
完成所有设置后,您可以简单地复制文件/文件夹:
scp -r /some/local/dir jump:remote_dir
Run Code Online (Sandbox Code Playgroud)
或从远程到本地:
scp -r jump:remote_dir/subdir /my/local/machine/path
Run Code Online (Sandbox Code Playgroud)
remote_dir
将相对于用户的家。
注意:这并不涵盖所有步骤,因为这超出了原始问题的范围,但您可以使用例如 Chrome 远程桌面来建立从您的盒子 C 到盒子 B(跳转服务器)的 SSH 链接,然后从框 A“透明地”通过 B 连接到 C。
最后,如果你想有一个更好的文本模式GUI比
scp
则考虑使用午夜指挥官- (mc
),apt install mc
您可以连接如左- >壳牌链接:输入您的目标框用户@ IP或配置您的别名~/.ssh/config
,如jump
在本例以上。
使用 Midnight Commander 通过 SSH 传输文件:
Gab*_*les 22
是的,是的,你可以。就在最近(本周?本月?就在今天?[这是我第一次看到它])Chrome 远程桌面已从您通过 Chrome 商店下载和启动的独立程序转变为您从网站启动的浏览器内应用程序:https : //remotedesktop.google.com。
[2019 年 6 月 27 日测试]
这一变化带来了全新的文件传输功能!登录后,屏幕右侧会显示此菜单:
如果您没有看到,请将鼠标悬停在右侧,直到您看到一个指向左侧的蓝色小箭头,然后单击它,因为此菜单是可隐藏的。
要将文件从远程机器下载到本地机器(主机),请单击“下载文件”按钮。它将在远程机器上打开一个“下载文件”文件管理器窗口。选择一个文件,然后单击“打开”。文件通过网络传输,GUI 文件管理器“保存文件”窗口将在您的本地(主机)机器上神奇地打开。选择一个位置并保存文件。
完毕。该文件位于本地计算机上您选择将其保存的文件夹中。
要将文件从本地(主机)机器上传到远程机器,请单击“上传文件”按钮。它将在您的本地机器上打开一个“打开文件”文件管理器窗口。选择一个文件(错误警告:您必须再次用鼠标单击该文件,即使它已经被选中,否则这对我不起作用)并单击“打开”。在上面显示的“文件传输”对话框下,您会看到一个带有文件传输进度条的“上传”指示器。完成后,您会在远程桌面屏幕底部看到以下通知弹出:“上传完成。在远程设备的桌面上查找文件。”
完毕。该文件位于远程计算机的桌面上。
Dav*_*ave 11
我不相信我的回答是准确的了。
见https://superuser.com/a/1453775/146314
原帖
这是做不到的。作为一种解决方法,您可以随时通过电子邮件将其发送给自己,或者使用 Google Drive/drop box 或类似工具。