我有一个公钥和私钥X:\安全。直接ssh
使用私钥就可以连接成功:
ssh -i X:\secure\id_rsa [email protected]
远程服务器已为 ssh 设置完毕,并拥有来自X:\secure\id_rsa.pub添加到/etc/ssh/authorized_keys/远程用户。
但是,当我尝试使用
scp somefile.txt -i X:\secure\id_rsa [email protected]:~
系统提示我输入密码。
问题:有没有办法可以无缝地 scp 一个文件,而无需提示,就像使用私钥建立 ssh 连接一样?
答案1
我在一台 Windows 10 机器上,正在连接到 Ubuntu 服务器。我已将其设置为只能使用带有密码的私钥进行连接。
我正在使用 cmder,它适用于 Windows:
scp -i ~\.ssh\privatekey foobar.txt linuxuser@server:/home/linuxuser
~.ssh\指的是C:\用户\.ssh\
答案2
我在 Linux 上,所以我无法测试这个,但你尝试过吗:
scp -i X:\secure\id_rsa somefile.txt [email protected]:~
我很确定你必须把选项放在源文件之前。如果你收到密码提示,那么密钥就不会被发送。
答案3
仅在此给出我的场景作为答案,未来的读者可能会受益。文件从 Windows 系统复制到在 Ubuntu 中运行的 Amazon EC2 实例。
C:\Users>scp -i "C:\aws\keys\JenkinsSrv.pem" jenkins-cli.jar [email protected]:/home/ubuntu