ssh 是一种安全加密的网络协议,用于远程登录,传输的过程中,密码是加密的,加密的方式如rsa,非对称加密,生成了公钥和私钥。免密登录应用十分广泛,如在Github中提交代码时,通过ssh的方式,将本机生成的公钥拷贝到Github网站的sshkey中,可以不用每次验证密码。免密登录远程Linux主机,如何配置这些呢?

本机免密登录

首先,生成秘钥对 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ,其中指定了加密算法,以及生成的私钥和公钥的保存位置:

1
2
3
.ssh
├── id_rsa
└── id_rsa.pub

然后将密码插入到认证过的公钥中

1
2
# authorized_keys 可能一开始是空的,公钥按序加入文件的末尾
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

现在,可以通过ssh来登录了ssh localhost,不再需要输入密码了。

远程免密登录

远程主机的登录类似,首先在远程主机上生成一个sshkey,同样将公钥添加到authorize_keys文件中,然后可以通过 ssh user@host 来访问远程主机了。
注:生成key时的密码。
参考博客http://mirror.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz