ssh信任关系,是指一台服务器上的一个用户信任客户端的一个用户,允许这个用户不输入密码登录,另一个说法叫做public_key_auth。实际上就是证书信任。
首先,需要为被信任的用户创建一个证书。运行下面的命令:
ssh-keygen -t rsa
将会在~/.ssh目录下生成两个文件,id_rsa和id_rsa.pub,分别是私钥和公钥。注意id_rsa文件的权限必须是600。
然后,到服务器用户的~/.ssh目录下,创建一个文件authorized_keys(如果已经有了,直接编辑),把id_rsa.pub里的内容(只有一行文本)加到文件里面保存。
好了,这样在客户端运行 ssh username@remotehost就可以不输入密码直接登录了。
设置了信任关系以后,可以在shell脚本中下载远程文件或在服务器上执行命令,不需要输入密码:
ssh username@remotehost << EOF
remote command...
EOF
sftp username@remotehost << EOF
get remotefile
EOF