linux系统之间文件互传scp命令用法

时间:2021-11-17 16:29:10

以下内容转自网络:

两台LINUX主机之间要互传文件时可使用SCP命令来实现

1. 需要输入密码:

   $ cd cd /home/tony/.ssh/
   $ scp id_rsa.pub root@172.17.12.57:/root/.ssh/authorized_keys
     (然后输入172.17.12.57那台机器下的root密码,便可以传输文件id_rsa.pub
      到,远程机器/root/.ssh/下,并改名为authorized_keys)

2. 不需要输入密码:
   ***不需要输入密码,就需要在两台机器之间建立信任关系:把本地主机用户的ssh
      公匙文件复制到远程主机用户的~/.ssh/authorized_keys***
   $ ssh-keygen
     (一路回车下去,然后会在/home/tony/.ssh/目录下生成id_rsa和id_rsa.pub
      两个文件,然后将id_rsa.pub文件传输到远程机。)
   $ scp /home/tony/.ssh/id_rsa.pub root@172.17.12.57:/root/.ssh/
     (实现了将id_rsa.pub传输到远程机器的/root/.ssh/目录下)
   $ ssh root@172.17.12.57
     (输入密码后,便可以通过ssh登录到远程机器,并且用root用户登录,这里如果直
      接输入ssh 172.17.12.57登录,是用默认的tony用户登录的,原来是不需要
      putty软件的啊,原来telnet和ssh是一样啊)
   # cd .ssh
   # mv id_rsa.pub authorized_keys
     (这条命令执行过后,在exit出来后,会发现ssh root@172.17.12.57不再需要
      密码了,从此scp的操作也不再需要密码了,原来scp就是ssh copy 的简写啊,
      乱说的,没经过考证)
     ***疑问:不知道为什么,我用ssh-keygen -f 生成对应的文件,复制过去却不管
        用***

3. 多台机器拥有一台机器的认证
   基本操作同上类似,但是进入到远程主机的.ssh/目录下有两种可供选择的:
   a. # cat id_rsa.pub >> authorized_keys
          (显示的,这是一种追加形式,可以满足要求)
   b. # mv id_rsa.pub authorized_keys2
          (这个不错啊,笔者本人也是蛮喜欢这种方式的)

4. scp -p
   scp -p 这个操作还是蛮有用的,可以保持文件属性不变。
   $ scp -p root@172.17.12.57:/root/scrun.log .
     (复制了远程机器上的scrun.log到当前目录下".",并且文件属性没有改变哦,
      创建时间之类的都没改变啊)

5. scp -r
   scp -r 这个r选项大家应该是熟悉的吧,不熟悉,自己骂自己一直在干嘛吧,r显示是
       recursion即递归的意思啊,cp操作中都带的,想必也是很容易猜测r在这里是什
       么意思吧,是可以传递文件夹(夹带了文件的传输哦)
       
   $ scp -r SVN/ root@172.17.12.57:/root/
     (OK, 传输成功了)