【问题标题】:using ssh keys with scp and ssh将 ssh 密钥与 scp 和 ssh 一起使用
【发布时间】:2014-07-29 18:25:23
【问题描述】:

我正在尝试使用 scp 将几个文件复制到目标系统,然后登录到系统并安装这些文件。我在这里使用 scp 和 ssh 命令以及 ssh 密钥进行无密码身份验证。

ssh 密钥是在源系统上创建的,如下所示。这是创建 ssh 密钥的正确且安全的方法吗?

~]# ssh-keygen -t rsa -N "" -f ~/.ssh/mytest.key

通过执行以下命令将密钥从源系统复制到目标系统。

~]# ssh-copy-id -i ~/.ssh/mytest.key 

现在,SSH 登录工作正常,无需提示输入密码,但是 scp 仍然无法正常工作.. 它仍然提示输入密码。使用 scp 时应该指定密钥路径吗?如果是这样,我如何指定 keypath 以及 scp 命令?

这里是使用的 ssh 命令

~]# ssh -i ~/.ssh/mytest.key root@192.168.1.1

【问题讨论】:

    标签: ssh scp ssh-keys


    【解决方案1】:

    首先,在scp....之前更改远程文件的chmod。

    sudo chmod 775 'file-name'

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

    复制 ssh 密钥的另一个选项:

    ssh-copy-id root@192.168.1.1
    

    之后就可以使用scp了:

    scp ./file root@192.168.1.1:/path_on_host/
    

    结果:

     [file] -transfer-> [192.168.1.1:/path_on_host/]
    

    【讨论】:

      【解决方案3】:

      您也可以按照以下步骤操作:

      1. 使用以下命令生成 ssh 密钥
      ~]$ ssh-keygen
      

      它会要求您提供文件名、文件位置、密码等详细信息。

      1. 确保将位置和文件名保留为默认值,这将是
      /home/user/.ssh/rsa_id
      

      确认密码后,将创建私钥和公钥文件。

      1. 在与步骤 2 相同的 .ssh 文件夹中创建名称为 authorized_keys 的文件。复制此文件中的公钥内容。

      你已经完成了!适用于 ssh 和 scp,唯一需要的密码是您的密码(如果您保留一个)。

      【讨论】:

        【解决方案4】:

        假设您的情况是 scp 从 192.168.1.1 尝试以下命令。

        scp -i ~/.ssh/mytest.key root@192.168.1.1:/<filepath on host>  <path on client>
        

        确保密钥文件的权限应为 600 或 400。

        【讨论】:

        • 太棒了!谢谢!
        猜你喜欢
        • 2018-12-26
        • 2020-07-28
        • 2018-04-12
        • 2022-11-06
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2012-09-06
        相关资源
        最近更新 更多