【问题标题】:Copying file from ssh server to mac?将文件从 ssh 服务器复制到 mac?
【发布时间】:2013-08-27 05:57:25
【问题描述】:

这个问题已经重复了很多次,我知道将文件从 ssh 服务器复制到 mac 我应该遵循这个:

将文件“foobar.txt”从远程主机复制到本地主机

$ scp your_username@remotehost.edu:foobar.txt /some/local/directory

但我想知道如何在连接到远程 ssh 后将其复制到本地计算机。 我的意思是在连接到 ssh 后意味着在终端中我连接到 ssh,然后将它们复制到我的电脑。我想要做的是一次连接到 ssh 并输入密码,然后执行所有操作。为什么?因为我正在编写一个用户友好的程序,它会询问一次密码,我不希望用户每次都输入或保存密码。

【问题讨论】:

    标签: linux unix ssh


    【解决方案1】:

    您实际上是在尝试重用现有的 ssh 连接。

    将此添加到您的~/.ssh/config 以设置自动连接共享:

    ControlMaster auto
    ControlPath ~/.ssh/control:%h:%p:%r
    

    现在,如果你这样做了

    scp your_username@remotehost.edu:foobar.txt /some/local/directory
    

    如果您已经在另一个终端中建立了连接,那么它不会要求您输入密码并且会很快建立连接。

    【讨论】:

    • 我只是在学习基础,你能告诉我我应该输入什么吗?我尝试运行第一行,但出现此错误:: bash: ControlMaster: command not found
    • @Bernard 您应该使用文本编辑器编辑~/.ssh/config,例如nanogedit 或您喜欢的任何其他工具。只需输入这些行或复制粘贴它们。例如:nano ~/.ssh/config 这将在名为nano 的控制台文本编辑器中打开文件。因此,在您完成输入这些行之后,按 ctrl+x 退出 nano,然后按 y 确认您的更改
    【解决方案2】:

    不是一个 SO 问题,而是:

    http://kb.iu.edu/data/agye.html

    scp 命令的语法是:

    scp [options] username1@source_host:directory1/filename1 username2@destination_host:directory2/filename2`
    

    换句话说,如果您想从另一个方向复制某些内容,只需切换源/目标即可:)

    例如:

    scp foobar.txt your_username@remotehost.edu:some/directory
    

    【讨论】:

    • 我的意思是在连接到 ssh 后意味着在终端中我连接到 ssh,然后将它们复制到我的电脑上。你写的我必须在那之后输入密码。但我想一次连接到 ssh,然后执行所有操作。为什么?因为我正在创建一个用户友好的程序,它会询问一次密码,我不希望用户每次都输入
    【解决方案3】:

    您可以通过 sftp(安全文件传输协议)将文件从远程复制到本地 首先初始化 sftp

    sftp -P typeYourPortNumber username@hostname
    

    现在你在 sftp 终端里面。现在您可以通过键入来复制文件

    get absolutePathToSouce absolutePathLocal
    

    您也可以通过以下方式将文件传输到服务器

    put pathToSource pathToDestination
    

    【讨论】:

      猜你喜欢
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多