搭建集群机器192.168.0.100和192.168.0.200里,需要两台机器中间相互拷贝文件:
方式一:下载192.168.0.100机器文件到本地,再将本地文件拷贝到B机器
方式二:192.168.0.100#scp -r /home/test root@192.168.0.200:/home/
linux命令scp可以在两台服务器192.168.0.100和192.168.0.200之间互传文件。第一次会提示授权操作,输入yes后在输入root用户的密码,会将192.168.0.100机器的/home/test文件拷贝到192.168.0.200机器的/home下。
现每次192.168.0.100和192.168.0.200之间互传文件都要输入密码比较麻烦,现介绍一种采用公钥/私钥认证的方式去掉密码登录。
注意点:
1.互传文件为同一登录用户root
2.秘钥存放位置为当前登录用户下 #cd ~/.ssh 可查看
一:创建一个ssh key
192.168.0.100机器执行如下代码:
$ ssh-keygen -t rsa -C "your_email@example.com" -t rsa-test
代码中各个参数含义为:
-t 指定密钥类型,默认是 rsa ,可以省略
-C 设置注释文字,比如邮箱,可以忽略
-f 指定密钥文件存储文件名,使用默认文件名(推荐);那么可以看到生成的两个文件 id_rsa
id_rsa.pub(
id_rsa
这个叫私钥;id_rsa.pub
这个叫公钥)
接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),
当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如:
Enter passphrase (empty for no passphrase): # Enter same passphrase again:
接下来,就会显示如下代码提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。
二:将机器192.168.0.100上的公钥发送到机器192.168.0.200的~.ssh/authorized_keys里
服务器为:192.168.0.100
192.168.0.100# scp /home/root/.ssh/id_rsa.pub root@192.168.0.200:/home/root/.ssh
服务器为:192.168.0.200 192.168.0.200#cd ~/.ssh 192.168.0.200#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
注意:如192.168.0.200机器的/home/root/.ssh下存在id_rsa.pub会将文件内容覆盖,因此我们可以将新公钥进行文件的追加。
三:执行复制操作
192.168.0.100#scp -r /home/test root@192.168.0.200:/home/
如还需要密码,则在192.168.0.200服务器里的/etc/ssh/sshd_config
文件,关键字PubkeyAuthentication
确保这个值是 yes;
若这个sshd_config
有修改,则需要重启sshd(#service sshd restart)
四:权限问题
192.168.0.200服务器里查看:
/home/root
文件夹的权限为 700,即 显示的权限应该是 drwx------
/home/root/.ssh
文件夹的权限也为700/home/root/.ssh/authorized_keys
文件权限为600,即,显示的权限应该是 -rw-------
完毕之后,退出服务器的登录,再使用ssh登录,你就会发现服务器不会再向你询问密码了.
五:调试
192.168.0.100# ssh admin@192.168.0.200 -vvv