ssh通过公钥验证身份
在linux操作系统中,可以使用scp命令进行服务器之间的文件复制,但是复制时需要输入远程服务器的密码,这在经常需要进行远程复制操作或者使用脚本复制时会略显麻烦,如果远程复制是在定时任务中执行,更会导致脚本不能自动执行,这时就需要实现无需输入密码进行scp复制。无需输入密码进行scp复制的方法有多种。
今天就介绍下使用公私钥来实现无需输入密码完成scp复制。
例如机器A和机器B
1、在机器A上执行ssh-keygen命令,生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户家目录的.ssh子目录中。
2、使用 ssh-copy-id 命令将机器A的公钥添加到服务器B的 ~/.ssh/authorized_keys 文件中
ssh-copy-id username@server_ip,例如ssh-copy-id root@192.168.1.100
,如果authorized_keys不存在会自动创建
3、若 ssh-copy-id 不可用,则手动将id_rsa.pub中的内容拷贝到B机器~/.ssh/authorized_key文件中,如果没有则创建一个。
这样就建立了服务器B对服务器A的信任关系,即在服务器A用任何ssh相关的工具访问服务器B,都不需要输入密码了。