两台主机之间通过密钥实现免密码登录
sshd认证方式: 1.基于口令的认证; 2.基于密钥的认证;公钥认证,把密钥放在用户家目录下的.ssh目录下 客户端: # ssh-keygen -t rsa 生成rsa密钥 -t type Specifies the type of key to create. 默认密钥在家目录.ssh目录下为id_rsa私钥,id_rsa.pub公钥 -f /path/to/somefile: 密钥文件保存位置,生成多次的话,可以指定其他名字 -P ‘’:指定oldpassword Provides the (old) passphrase. ssh-keygen -t rsa ssh-copy-id -i .ssh/id_rsa.pub username@hostIP <==> 如果没有ssh-copy-id,则通过如下方法 # ls -ld .ssh/ 注意权限 drwx------ 2 root root 4096 Jun 21 11:12 .ssh/ ssh username@hostIP 'umask 0077;mkdir /root/.ssh' 服务器端没有.ssh目录则创建 scp .ssh/id_rsa.pub username@hostIP:/root/.ssh/authorized_keys完整过程描述
基于密钥方式远程登录过程: 1.在客户端生成密钥对 #ssh-keygen -t rsa 2.把公钥复制到服务器端 #ssh-copy-id -i .ssh/id_rsa.pub username@hostIP 等价方法 # ls -ld .ssh/ 注意权限 drwx------ 2 root root 4096 Jun 21 11:12 .ssh/ # ssh username@hostIP ‘umask 0077; mkdir /root/.ssh’ # scp .ssh/id_rsa.pub username@hostIP:/root/.ssh/authorized_keys 3.客户端登录时 # ssh username@hostIP 可以不用输入密码了 所谓“公钥登录”,就是用户将自己的公钥存储在远程主机上,登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回去。远程主机用事先存储的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。