核心提示:
本文主要讲述Ubuntu 下文件同步与SSH无密码登陆相关内容:ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。
服务器端配置 ssh配置密钥rsync 同步
在做两台服务器的数据同步,无论是通过ssh登陆,还是通过scp拷贝文件都需要输入密码,所以要想实现两机数据同步则 必须先要解决的是无需登陆的ssh,这样再通过crontab就可以通过脚本定时通过scp命令来做远程备份了。Linux ssh无密码访问是由服务器和客户端两端的配置来实现的,嗨网在线 以Ubuntu为例说明文件同步与SSH无密码登陆.
服务器端配置 ssh
修改客户端sshd配置文件
sudo vi /etc/ssh/sshd_config
修改为
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
重启ssh服务
sudo /etc/init.d/sshd restart
配置密钥在客户端生成公钥和私钥文件
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp 到服务器端
scp ~/.ssh/authorized_keys username@hostname:~/.ssh/authorized_keys
修改 config 文件
vi ~/.ssh/config
添加
host sshname
HostName hostname(ip address)
user username
IdentityFile ~/.ssh/id_rsa
测试
ssh sshname (-p port)
rsync 同步rsync (--exclude=exclude) -avz (-e "ssh -p 22") ./ sshname:~/path
注:
括号为可选hostname 指域名或者 IP 地址username 对应服务器的用户名