SSH-key方式免密登录
在做项目的过程中有同步文件的需求,经过考察后选择了rsync作为同步文件工具,但是默认情况下rsync同步文件需要手动输入密码,由于同步文件功能是在程序中实现的,无法手动输入密码,所以必须免密输入。通过查询找到了一种免密输入的方法,先记录如下:
步骤一:
执行ssh-keygen命令,注意这个命令要在执行rsync同步命令的机器执行,结果如下:
consys@consys-Lenovo-Legion-Y7000:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/consys/.ssh/id_rsa):
/home/consys/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/consys/.ssh/id_rsa
Your public key has been saved in /home/consys/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:+lQopQ37ztJv+4cCGKgj5zQ6RgvlKw02rSeDIZuumNc consys@consys-Lenovo-Legion-Y7000
The key's randomart image is:
+---[RSA 3072]----+
| |
| |
| .. . |
| . . .* . |
| o.. +oS . |
|*+B. .+.. |
|*%+= ..o. . |
|OB=.E .=. o . . |
|B=+ .+oo+.. |
+----[SHA256]-----+
步骤二:
执行ssh-copy-id命令,将生成的文件拷贝到服务器,即要从哪台机器下载,拷贝到哪台机器。ssh-copy-id命令也是在ssh-keygen执行的机器执行。命令如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.11.24
username:填写用户名
ip:填写实际ip
步骤三
执行rsync下载命令,即可面你输入。
拓展
除上面的方式外,rsync还可以通过执行密码文件的方式实现免密登录,也可以通过设置环境变量RSYNC_PASSWORD的方式,但是我没有经过验证。感兴趣的朋友可以自行验证下。