假设一切都很顺利的话,最简单的方式以下:服务器
ssh-keygen
命令在本地生成一对密钥(Public/Private Key)ssh-copy-id username@your-server-ip
命令将本地的公钥上传到远程服务器ssh username@your-server-ip
命令便可免密登陆了若是以前已经在本地生成过密钥了,那第一步均可以省了。怎么看有没有生成过:使用 ls -a ~/.ssh
命令看下是否已经存在 id_rsa 和 id_rsa.pub 文件,有即生成过。ssh
但每每看别人玩的很嗨,到本身实操了就会出现各类问题。仍是那句话:该踩的坑一个都不会少! 若是遇到问题了能够看看下面列举出来的常见的 TROUBLESHOOTING。spa
ssh-copy-id
命令时指定了某个公钥,好比 ssh-copy-id -i ~/.ssh/id_rsa_another.pub username@your-server-ip
,此时注意在使用 ssh 命令远程链接的时候也须要指定这个公钥,不然默认是会拿 ~/.ssh/id_rsa.pub 去匹配的,因此你的链接命令应该是相似这样:ssh -i ~/.ssh/id_rsa_another.pub username@your-server-ip
。PubkeyAuthentication yes
PermitRootLogin no
则将其改成 yes一张时序图最能说明问题了 :P3d