您的位置:首页 > 其它

无需密码,使用scp进行传输

2010-04-14 19:25 411 查看
尝试过使用scp 进行文件传输,这个命令比较好,不需要本机器或者对端机器安装什么服务.但一直以来有个缺点,需要手动输入密码,我在服务器A上定了个计划,每周执行一次 拷贝命令,将A上指定目录下的一些文件拷贝到对方机器上.命令是这样写的:scp –rp /backup/ bklinux@*.*.*.*:/backup/, 命令的作用是将本地/backup目录下的文件及子目录上传至B服务器/backup目录下.

A:建立用户bklinux,并对/backup目 录有访问权限

B:建立用户bklinux,并对/backup目录有访问权限

这条命令不需要管理员权限就可以执行. 但传输文件时,提示输入bklinux的密码.

现在的问题,我如果想加入脚本每周固定的时间执行,应该怎么取消掉密码?google scp 密码,找到方法.

----------------------------------------------------- 我是分割线 -------------------------------------------------------------------------

把你的本地主机用户的ssh公匙文件复制到远程主机用户 的~/.ssh/authorized_keys文件中

假设本地主机linux100,远程主机linux200

一,在linux100主机里的用户

运行

#ssh-keygen -t rsa

结果如下

QUOTE:

Generating public/private rsa key pair.

Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车

Enter passphrase (empty for no passphrase):#回车

Enter same passphrase again:#回车

Your identification has been saved in /home/.username /.ssh/id_rsa.

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

The key fingerprint is:

38:25:c1:4d:5d:d3:8946:67:bf:52:af:c3:17:0c username@localhost

Generating RSA keys:

Key generation complete.

会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub

二,把linux100主机上的id_rsa.pub文件拷贝到linux200主机的root用户主目录下的.ssh目录下,并且改名为 authorized_keys

即:

/root/.ssh/authorized_keys

这样在linux100主机上使用scp命令复制文件到linux200上将不提示输入密码了,直接复制了。

反之亦然!

-------------------------------------------------------------我是 分割线---------------------------------------------------------------------

实际上就是建立了双方的ssh的信任机制

经实验,原本A服务器/root下没有.ssh/目录.执行#ssh-keygen -t rsa后,产生文件如下:



将id.rsa.pub通过scp命令拷贝至B服务器root/.ssh/authorized_keys目录下,B服务器需要手动建立.ssh目录.

B服务器重新加载sshd服务,service sshd reload(也许是多余的)

这样,可以在A上执行scp –rp /backup/ bklinux@*.*.*.*:/backup/, 或者scp –rp /backup/ root@*.*.*.*:/backup/进 行文件传输,

同样,也可以使用bklinux登陆A,执行$ssh-keygen -t rsa,也将在对应目录产生3个文件,重复执行上述步骤,拷贝至B服务器/home/bklinux/.ssh/authorized_keys下,B服务器bklinux用户的.ssh/目录也需要手动创建.

这样,在A上用bklinux用户,也可以进行免密码的文件传输了.

注:此方式的安全性本文没有谈到,更好的办法是在B上创建nfs服务,在A上就可以直接操作了,就像操作本地磁盘一样.以后尝试.

使用此方法做免密码传输,需要双方服务器建立同样的账号,在客户端执行ssh-keygen -t rsa,然后将对应的文件拷贝至服务器端,相当于客户端去服务器端进行信任的校验,通过就不需要密码了.
本文出自 “向网络要知识” 博客,请务必保留此出处http://webuser.blog.51cto.com/800099/295134
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: