在shell prompt下输入
ssh-keygen
会要求输入保存的文件名,直接回车,使用默认值
要求输入密码,直接回车,空密码
生成的文件在$HOME/.ssh 目录下,默认生成2个文件id_rsa和id_rsa.pub
最后执行:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
不同的机器也是一样的方法,先在client机器用ssh-keygen(我试的机器ssh-keygen默认使用RSA算法加密,可自己指定)生成id_rsa和id_rsa.pub文件,然后把id_rsa.pub文件从client机器拷贝到server机器的$HOME/.ssh(useradd默认没有创建.ssh目录,可以自己创建)目录下,命名成authorized_keys. OK,2机器可以直接通信了。
注意:.ssh的目录权限必须为700,即ls -l看到的是drwx------ .ssh目录下的文件的权限为644,即-rw-r--r--
如果中间还是有什么问题,请确认步骤,或者查看server端机器的/var/log/security文件(需要root权限)记录。
ssh 公钥登录(抄的,稍微了解一下工作方式,看起来跟ssl的原理是一样一样的)
使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。