简介
由于每次ssh上去都要输密码。而我的密码又复杂。反复几次很是烦恼就解决一下。
流程
生成主机的公私钥:cd ~/.ssh && ssh-keygen -t rsa
将会生成两个文件,id_rsa
为私钥,id_rsa.pub
为公钥。
私钥,顾名思义需要自己保存的密钥。而公钥则是公布给外面的。
有两个文件需要说明:
authorized_keys
:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。所以我们需要把主机生成的公钥追加到authorized_keys文件后面,达到免密码的目的。
know_hosts
: 已知的主机公钥清单,每次和远端的服务器进行一次免密码ssh连接之后就会在这个文件的最后追加对方主机的信息(不重复)
注意:
检查文件和目录权限(服务器端的权限):
- 设置authorized_keys权限:
$ chmod 600 authorized_keys
- 设置.ssh目录权限:
$ chmod 700 -R .ssh
至此就可以免密码登陆了。
创建ssh会话
我们可以利用 ssh 的用户配置文件 config 管理 多个免密码ssh 会话。ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config,不存在则新创建一个),其配置写法如下:
HOST SW1
HostName SERVER_NAME
User WHO
port 22
IdentityFile ~/.ssh/id_rsa
完成后可直接通过该命令完成连接:$ ssh SERVER_NAME