SSH 免密登录(公私钥生成及配置)

146 阅读1分钟

场景

经常需要 SSH 登录到另一台机器上,尤其是在 shell 脚本里需要使用 scp sftp ssh 命令登录到另一台机器上操作时,会在脚本执行中途被拦下来要求输入密码,是一件很蛋疼的事情。

今天就简单介绍一下SSH 免登的操作方法,比较简单全篇就不配图了。

生成公私钥

ssh-keygen -t rsa
  1. 这个命令执行后会在 ~/.ssh 下生成两个文件id_rsa (私钥)和id_rsa.pub (公钥)
  2. 公私钥是一对,要搭配使用,你需要哪一台机器信任你,对你免密,就把你的公钥给他,让他加入信任。具体操作下面说。
  3. 每一次执行生成命令时都会覆盖id_rsa (私钥)和id_rsa.pub (公钥)这两个文件,覆盖前会有提示(y/n),不想覆盖就选n

配置信任

  1. 这一步很简单,只要把刚刚生成的id_rsa.pub 文件里的内容,追加到远端服务器中~/.ssh/authorized_keys 这个文件中即可。
  2. 注意,是追加,不是覆盖,因为这个文件中记录着它所有信任的机器。如果~/.ssh/authorized_keys 不存在,新建一个就行。
  3. 做完上面的事,你再 ssh username@ip 时,就会用自动带上你本地的私钥,相当于钥匙开了锁,实现免密。
  4. 所有id_rsa (私钥)要保护好不要给别人,给了别人也就可以冒充你免密登录了。