通过我的浏览器连接到 ssh 会话。如何通过浏览器访问本地文件?
Connected to ssh session via my browser. How can I access my local files through the browser?
我使用 ssh
连接到位于地址 'abc.def.com' 的专用网络上的虚拟机,并且在该虚拟机上有一个托管 Python 网络应用程序的应用程序(IPython 笔记本),我可以通过将我的本地浏览器指向 'abc.def.com:7777'.
来访问
我可以从该网络应用程序调用 shell 命令,方法是在它们前面加上“!”,例如 !ls -lt
将列出 VM 当前工作目录中的文件。但是由于我使用的是我自己笔记本电脑的浏览器,我想我也应该能够对我的本地文件执行 运行 shell 命令。我该怎么做?
如果这不可能,我可以从 Web 应用程序中 运行 使用什么 Python/shell 命令来自动获取笔记本电脑的 IP 地址以使用 scp
之类的东西?我知道如何获取我的 IP 地址,但我想创建一个程序,自动为使用它的人启用 scp。
您有 ssh 访问权限,因此您可以可能 编写一个 python 函数,让您通过 scp
使用 ssh 的安全复制命令传输文件沟通。如果您与服务器交换密钥,则不必输入密码,因此从这个角度来看我认为没有问题。问题是您是否有从服务器访问本地计算机的地址。
我整天都在笔记本电脑上使用各种遥控器,从笔记本电脑到服务器,我可以使用此功能:
def scp_to_server(address, local_file, remote_file):
subprocess.call(['scp',local_file,"myusername@{}:{}".format(address, remote_file)])
如果路径正确,我可以将文件从我的本地计算机复制到远程,我有复制文件的权限,并且我本地计算机的 id_rsa.pub
密钥在 ~/.ssh/authorized_keys
文件中在遥控器上。
我无法从远程启动安全副本到我的本地机器,但是因为我没有地址来访问本地机器,我可以在远程"see"上访问本地机器。
如果我在笔记本电脑上打开终端 运行 hostname
我会看到 mylaptop.local
并且在遥控器上我会看到 remoteserver@where.i.work.edu
但第一个是本地地址我可以从我家里 LAN 上的其他机器上看到它,(因为我已经配置好了)但是我无法从远程看到 mylaptop.local
。我知道有一种方法可以配置它,这样我就可以在家里的任何地方找到我的笔记本电脑,但我从来不需要这样做(因为我随身携带了笔记本电脑)所以我无法在这方面帮助你。我认为需要克服的障碍比您想的要多。
您可以在本地计算机上实现上述功能并以这种方式传输文件。
我使用 ssh
连接到位于地址 'abc.def.com' 的专用网络上的虚拟机,并且在该虚拟机上有一个托管 Python 网络应用程序的应用程序(IPython 笔记本),我可以通过将我的本地浏览器指向 'abc.def.com:7777'.
我可以从该网络应用程序调用 shell 命令,方法是在它们前面加上“!”,例如 !ls -lt
将列出 VM 当前工作目录中的文件。但是由于我使用的是我自己笔记本电脑的浏览器,我想我也应该能够对我的本地文件执行 运行 shell 命令。我该怎么做?
如果这不可能,我可以从 Web 应用程序中 运行 使用什么 Python/shell 命令来自动获取笔记本电脑的 IP 地址以使用 scp
之类的东西?我知道如何获取我的 IP 地址,但我想创建一个程序,自动为使用它的人启用 scp。
您有 ssh 访问权限,因此您可以可能 编写一个 python 函数,让您通过 scp
使用 ssh 的安全复制命令传输文件沟通。如果您与服务器交换密钥,则不必输入密码,因此从这个角度来看我认为没有问题。问题是您是否有从服务器访问本地计算机的地址。
我整天都在笔记本电脑上使用各种遥控器,从笔记本电脑到服务器,我可以使用此功能:
def scp_to_server(address, local_file, remote_file):
subprocess.call(['scp',local_file,"myusername@{}:{}".format(address, remote_file)])
如果路径正确,我可以将文件从我的本地计算机复制到远程,我有复制文件的权限,并且我本地计算机的 id_rsa.pub
密钥在 ~/.ssh/authorized_keys
文件中在遥控器上。
我无法从远程启动安全副本到我的本地机器,但是因为我没有地址来访问本地机器,我可以在远程"see"上访问本地机器。
如果我在笔记本电脑上打开终端 运行 hostname
我会看到 mylaptop.local
并且在遥控器上我会看到 remoteserver@where.i.work.edu
但第一个是本地地址我可以从我家里 LAN 上的其他机器上看到它,(因为我已经配置好了)但是我无法从远程看到 mylaptop.local
。我知道有一种方法可以配置它,这样我就可以在家里的任何地方找到我的笔记本电脑,但我从来不需要这样做(因为我随身携带了笔记本电脑)所以我无法在这方面帮助你。我认为需要克服的障碍比您想的要多。
您可以在本地计算机上实现上述功能并以这种方式传输文件。