我正在尝试使用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
答案 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)
您也可以按照以下步骤操作:
~]$ ssh-keygen
它将询问您详细信息,例如文件名,文件位置,密码短语等。
/home/user/.ssh/rsa_id
确认密码短语后,将创建私钥和公钥文件。
您完成了!对于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/]