2012-03-12 19:37:26 +0000 2012-03-12 19:37:26 +0000
54
54

scp'ing使用key文件作为参数,如果可以的话,我怎么做?

scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

上述脚本是否有误?是我做的不对吗?

我到.ssh目录下,看到远程服务器在known_hosts文件中。

但是,当我做普通的scp时,没有任何文件作为参数,它仍然要求输入密码

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

我如何才能在命令中加入密钥文件?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj

答案 (3)

70
70
70
2012-03-12 21:17:14 +0000
-i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read. This option is directly passed to
         ssh(1).

使用~/.ssh/id_rsa

1
1
1
2019-07-11 15:53:49 +0000

这可能会帮助另一个新手。

[我知道这是一个多余的循环例子,但它很好地说明了这一点] 场景:

1.来自Mac的ssh -> Ubuntu 2.来自Mac的scp文件 -> Ubuntu 3.关闭来自Ubuntu的ssh和scp文件 -> Mac

我只在我的Mac上创建了ssh密钥(通过ssh-keygen),并通过(ssh-copy-id)与运行Ubuntu的机器共享它们。因此,我可以从运行Ubuntu的机器上登录到我的Mac上复制文件,但不能反过来。

解决办法。我必须在Ubuntu机器上创建ssh密钥并与我的Mac共享,然后我就可以在Ubuntu机器上成功运行下面的命令

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

在Mac上

ssh-keygen
ssh-copy-id ubuntu@192.168.1.38

ssh ubuntu@192.168.1.38

# Now on Ubuntu
ssh-keygen
ssh-copy-id MAC@192.168.1.40

现在下面的命令应该在不要求密码的情况下将文件复制到MAC

sudo scp -i /home/ubuntu/.ssh/id_rsa MAC@192.168.1.40:~/Documents/Fluff/Version-Control/tools/pull.sh .
0
0
0
2016-05-24 21:39:24 +0000

通过这些说明测试和纠正 https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

当我在我的盒子上测试时,这里的说明完美无瑕地工作了(CentOS/CentOS)。我想问题是你的ssh密钥没有绑定到用户名。

例如: cat authorized_keys # on Box I’m sshing/scpin’ to ssh- rsa BLAHBLAHBLAHBLAH/zAcS4kD9pyPAjD3/gd5D1rcQa6IztCMR9yMXiGFnxviWsT8/oYevZw25k4yREuA8ibLKC9peH1X4LK1E+n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ/y0Ay2A/KmaC14YrDfqwm7+ibTiUp4hOO8I6eIPmwwGn/2hs0SewJXisGqUx2v。my\_user@machine.local #username is tied to the key and is an authorized host.