linux利用ssh-keygen实现免密码登录

2018-04-21 11:41:41

思考下以下几个问题:

  1. 利用crontab定时任务半夜利用sftp或rsync来自动链接远程来备份文件
  2. 利用xshell或linux之间登录时无需重复输入密码即可直接登录

我们知道想要跟远程linux服务器交互,肯定要验证身份,最直接的肯定是输入账号密码。
登录时候每次输入密码倒也能忍受,但是一旦需要自动利用shell脚本备份时就麻烦了,此时肯定要在命令行一次性搞定而无需人工交互。linux的ssh的公钥认证就可以解决。

假设linux-1(192.168.1.1)要免密登录到linux-2(192.168.1.2)或者linux-2上的重要文件要自动通过脚本备份到linux-1。

只需要2步就可以搞定

1.在linux-1上生成rsa秘钥对,运行ssh-keygen如图

期间会提示你输入key存放位置以及密码,直接跳过一直按回车就行。这时,在/root/.ssh/下面就会生成2个文件id_rsa(私钥),id_rsa.pub(公钥)。

2.把id_rsa.pub里面的公钥复制下来追加到linux-2上面的/root/.ssh/authorized_keys里就可以了(除非你瞎改了/etc/ssh/sshd_config配置文件)

此时你在linux-1电脑上运行ssh root@47.75.6.231就会直接登录成功(第一次可能会有如下提示,敲yes就行)

#这时就会直接去下载无需密码(而且支持断点续传哦)
sftp root@192.168.1.2: /tmp/tmp.tar.bz2

#把/pro/的所有文件同步到/tmp/pro/下面
rsync -avz -delete root@192.168.1.2:/pro/* /tmp/pro/

这样聪明的小伙伴就可以自己写个shell脚本放在crontab里定时去备份文件了

©著作权归作者所有
收藏
推荐阅读
简介
天降大任于斯人也,必先苦其心志。