为什么要使用 ssh 免密登录
中间人攻击
我们知道,不通过免密登录的流程是:
- 服务端接收到登录请求,返回公钥
- 本地主机将密码使用公钥加密后,发送给服务端
- 服务端使用私钥解密,获取密码明文后进行密码验证


密码经过了双向验证,可以保证安全性
设置
- 本地控制台生成ssh公钥(id_rsa.pub)和私钥(id_rsa)
ssh-keygen -t rsa
- 将生成的公钥(id_rsa.pub)追加至服务端的
~/.ssh/authorized_keys
文件内 - 设置
authorized_keys
文件的权限为600(所有者可读可写)
chmod 600 ~/.ssh/authorized_keys
坑
配置文件问题
配置完之后可能不能顺利连接,此时需要找到:
/etc/ssh/sshd_config
sshd配置文件下的这三行
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
把注释去掉,重启sshd服务,既可以顺利连接
本地曾经生成过id_rsa和id_rsa.pub
因为本地ssh默认是使用id_rsa作为私钥文件进行解密的。因此,此时直接将id_rsa.pub
的内容追加到服务器端即可
再说中间人
事实上,如果真的有“中间人”拦截住了所有的请求,本地主机和远程服务端的请求往来还是会被截取用于分析。
虽说数据是被加密了的,但是还是免不了会有安全风险在。
因此,没有绝对安全的系统,也没有绝对安全的手法。只能通过不断提高自己的安全意识来做好防范,避免因为安全意识太过薄弱而造成很大的风险。