我们通常会在Shell脚本里用ssh登录到远程主机上。但是如果不用RSA认证的话,会提示输入登录密码,这就不利于非交互形式下的自动化处理。
关于ssh rsa的配置很简单,需要注意的地方时几个文件的访问权限。
现在有两台主机,local和remote,我们希望在local上执行ssh remote不需要输入密码自动登录到remote上。配置如下:
##On Local##
1. cd $HOME/.ssh
##如果.ssh不存在的话,可以创建这个目录,访问权限是700.
2. ssh-keygen -t rsa
然后连续输入回车即可。然后会生成2个文件: id_rsa 和 id_rsa.pub。id_rsa里保存的是私钥,id_rsa.pub里保存的是公钥。id_rsa的权限是600,id_rsa.pub的权限是644。
3. scp id_rsa.pub remote:$HOME/.ssh
##On Remote##
1. cd $HOME/.ssh
2. cat id_rsa.pub >> authorized_keys
注意authorized_keys文件的访问权限是必须是644.
至此,所有的配置完成,可以在local上输入ssh remote后无需输入密码即可登陆remote主机。因为scp也是用ssh连接,所以scp local remote也无需输入密码。