ssh 免密登录

5次阅读

共计 527 个字符,预计需要花费 2 分钟才能阅读完成。

ssh 免密登录
导语
换了新电脑,加上一些琐事,开发环境一直在将就。终于闲下来,有时间来整理记录下。介绍一下 ssh 免密登录。
生成密钥
在用户目录中检查是否有 .ssh/id_rsa.pub 文件,如果有的话,可以跳过这一步。我的 Mac 是在搭建 Homestead 的时候,生成的密钥。生成密钥输入 ssh-keygen -t rsa -b 4096 -C“your_email@example.com”命令即可。完成之后去查看下是否成功。

服务器配置
接下来登录到服务器中,同样是在用户目录下的 .ssh 目录,查看是否有 authorized_keys 文件。如果有,就将电脑中 id_rsa.pub 的内容追加到 authorized_keys 文件中;如果没有,创建 authorized_keys 文件后将内容写入。注意将 authorized_keys 文件权限设置为 600。
添加别名
经过如上的操作后,ssh 的时候不再需要密码了,但是还不够简洁,还需要输入 ssh root@127.0.0.1。一步到位更简洁点,添加别名。执行 alias txy=“ssh root@127.0.0.1”该命令后,只需要输入 txy 即可 ssh 登录到该服务器。

参考链接:Mac ssh 免密码登录 Mac 或者 Linux、alias。

正文完
 0

SSH 免密登录

5次阅读

共计 777 个字符,预计需要花费 2 分钟才能阅读完成。

理想案例
假设一切都很顺利的话,最简单的方式如下:

使用 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 文件,有即生成过。
现实情况
但往往看别人玩的很嗨,到自己实操了就会出现各种问题。还是那句话:该踩的坑一个都不会少!如果遇到问题了可以看看下面列举出来的常见的 TROUBLESHOOTING。

如果你在执行 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。
SSH 服务端可能配置了不允许公钥授权登录。查看服务器上的 /etc/ssh/sshd_config 文件里是否配置正确:PubkeyAuthentication yes

SSH 服务端可能配置了不允许 root 用户登录。查看服务器上的 /etc/ssh/sshd_config 文件,其中如果包含 PermitRootLogin no 则将其改为 yes

基本原理
一张时序图最能说明问题了 :P
参考资料
Ssh-copy-id for copying SSH keys to servers | SSH.COM

正文完
 0