您的位置:首页 > 其它

使用scp进行远程数据传输时避免输入密码(scp without password)

2011-02-10 17:47 483 查看
假设本机为client,远程机器为server。

举例:从已登录的Client(192.168.1.1)复制目录/usr/a到Server(192.168.1.2)的/usr目录下,

命令如下:

scp -r /usr/a root@192.168.1.2:/usr

回车之后等待片刻,提示输入Server的密码,

输入正确密码之后,

开始复制目录a下的所有文件到Server中。

如果只是复制一个文件,

则去掉-r参数,如:

scp /usr/a/index.html root@192.168.1.2:/use/a/

你会发现使用命令操作,是一种非常方便、快捷的方式。但是,如果想不输入密码,则需要在两台机器之间建立信任关系。

在机器Client的root和机器Server的root之间建立安全信任关系的步骤:

1. 在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书

[root@Client root]# ssh-keygen -b 1024 -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase): <-- 直接输入回车

Enter same passphrase again: <-- 直接输入回车

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1c root@Client

[root@Client root]#

注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。

上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在/root/.ssh/子目录中。

2. 将公钥证书id_rsa.pub复制到机器Server的/root/.ssh/子目录下,如果Server的/root/.ssh/下没有authorized_keys,则直接将id_rsa.pub重命名为authorized_keys,如果Server的/root/.ssh/下已经有authorized_keys文件,则将id_rsa.pub的内容添加到authorized_keys文件的尾部。[可以使用cat id_dsa.pub >> authorized_keys命令,也可以使用vim打开authorized_keys进行编译。]

3. 现在可以使用scp进行远程数据传输,同时又避免输入密码了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: