使用带scp和ssh的ssh键

时间:2014-06-09 08:32:01

标签: ssh scp ssh-keys

我正在尝试使用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时指定关键路径吗?如果是这样,我如何指定键路径以及scp命令?

这是使用的ssh命令

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

3 个答案:

答案 0 :(得分:14)

假设你的scp来自192.168.1.1的情况尝试下面的命令。

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

确保密钥文件应具有权限600或400。

答案 1 :(得分:0)

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

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

它将询问您详细信息,例如文件名,文件位置,密码短语等。

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

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

  1. 在与步骤2相同的.ssh文件夹中,创建名称为 authorized_keys 的文件。

您完成了!对于ssh和scp均适用,只需密码即可(如果您保留一个密码)。

答案 2 :(得分:0)

复制 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/]