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

假设本机为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进行远程数据传输,同时又避免输入密码了。

from:http://blog.csdn.net/dupei/article/details/6177538

posted @ 2012-06-22 12:22  dkcndk  阅读(5414)  评论(0编辑  收藏  举报