场景
经常需要 SSH 登录到另一台机器上,尤其是在 shell 脚本里需要使用 scp sftp ssh 命令登录到另一台机器上操作时,会在脚本执行中途被拦下来要求输入密码,是一件很蛋疼的事情。
今天就简单介绍一下SSH 免登的操作方法,比较简单全篇就不配图了。
生成公私钥
ssh-keygen -t rsa
- 这个命令执行后会在 ~/.ssh 下生成两个文件
id_rsa(私钥)和id_rsa.pub(公钥) - 公私钥是一对,要搭配使用,你需要哪一台机器信任你,对你免密,就把你的公钥给他,让他加入信任。具体操作下面说。
- 每一次执行生成命令时都会覆盖
id_rsa(私钥)和id_rsa.pub(公钥)这两个文件,覆盖前会有提示(y/n),不想覆盖就选n
配置信任
- 这一步很简单,只要把刚刚生成的
id_rsa.pub文件里的内容,追加到远端服务器中~/.ssh/authorized_keys这个文件中即可。 - 注意,是追加,不是覆盖,因为这个文件中记录着它所有信任的机器。如果
~/.ssh/authorized_keys不存在,新建一个就行。 - 做完上面的事,你再
ssh username@ip时,就会用自动带上你本地的私钥,相当于钥匙开了锁,实现免密。 - 所有
id_rsa(私钥)要保护好不要给别人,给了别人也就可以冒充你免密登录了。