您的位置:首页 > 运维架构 > Linux

scp在linux中实现两台主机传件--互信无需输入密码

2015-03-11 08:57 656 查看
最近工作中需要从一台主机中将某个文件夹(发布目录)考到多台主机的要求:

Linux命令选择scp ,scp命令格式如下:

Shell命令:从远端主机下载文件

1. scp -p port username@serverip:/home/user/file /home/user/file

-p port为指定端口,一般采用默认端口,可省略;

username为远端主机的用户名;

serverip 为远端主机的IP;

第一个/home/user/file 为远端主机文件路径

第二个/home/user/file为本地主机文件路径

Shell命令:本地文件上传远端主机

2. scp -r /home/user/file username@serverip:/home/user/file

-r 表示传输整个文件夹



以上两个命令都可以正常完成文件主机之间的传输,但操作过程中需要输入密码,比较麻烦,那么接下来需要在主机之间建立通信互信,以减少密码输入。

那么就需要通过 ssh-keygen 来生成密钥文件与私钥。

1. ssh-keygen -t rsa

rsa为加密算法,注意ssh-keygen之间没有空格。

2.执行上命令之后会生成id_rsa 与 id_rsa.pub两个文件,接下需要将id_rsa.pub复制到远端主机的.ssh文件夹内并重命名为authoried_keys

scp id_rsa.pub username@serverip:/home/user/.ssh/authoried_keys

注:有好多网上说要把这个文件拷到root用下的.ssh中,其实不需要,拷到当前用户目录下的.ssh也是可以的,而且有时root用下的.ssh目录一般人也不一定有权限。

3.如果目标主机上已经有authoried_keys文件,则可以将id_rsa.pub的内容追加到目标主机上已经有的authoried_keys中。

Shell命令:cat /user/.ssh/id_rsa.pub | ssh user@serverip 'cat >> /user/.ssh/authorized_keys'

注:此入的路径请以具体主机的用户的.ssh目录即可。

至此,这两台主机之间传文件第一次需要输入密码,后续再不需要输入密码,非常方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: