![0b4ad956617b1e9d4f70dee339fe4936.png](https://img-blog.csdnimg.cn/img_convert/0b4ad956617b1e9d4f70dee339fe4936.png)
Linux系统结构图解
准2台Linux主机
localhost_IP:192.168.0.1
remotehost_IP:192.168.0.2
1、在服务器 localhost_IP 上执行如下命令来生成配对密钥:
ssh-keygen -t rsa
执行上述命令,一路回车,会在用户目录~/.ssh/生成两个文件id_rsa、id_rsa.pub,前者是私有密钥,后置是公共密钥。
2、拷贝localhost_IP的公共密钥到remotehost_IP上
拷贝id_rsa.pub文件到remotehost_IP机器的~/.ssh/下,并用cat id_rsa.pub >> authorized_keys命令把id_rsa.pub里的内容附加到.ssh/authorized_keys文件上去。
以后从服务器 localhost_IP scp 到服务器remotehost_IP 就不需要密码了。
3、使用此方法需要注意:复制的两台计算机需要用相同的账户名,为了安全起见,需要在两台机器中创建相同的账号,然后在服务器 localhost_IP上用 su 命令切换至该账号下,然后执行第1步,第2步中复制文件时可能 ~/.ssh/ 目录并不存在,需要手动创建。
(多个公钥)在第2步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >> 命令将验证文件内容附加上去。
接下来就是测试了
在服务器 localhost_IP 上执行
vi ~/tmp.txt
scp ~/tmp.txt root@192.168.0.2:~/
4、复制文件或目录命令:
复制文件:
(1)将本地文件拷贝到远程
scp 文件名 用户名@计算机IP或者计算机名称:远程路径
(2)从远程将文件拷回本地
scp 用户名@计算机IP或者计算机名称:文件名 本地路径
复制目录:
(1)将本地目录拷贝到远程
scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径
(2)从远程将目录拷回本地
scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径