常登陆情况下我们都是按照命令连接远程,然后输入密码,而且每次连接都要输入此密码,非常的麻烦
那就让我们愉快的学习怎么实现免密登陆吧!
1.配置公钥
执行ssh-keygen即可生成SSH钥匙,一路回车即可
此时.ssh目录下就会生成 id_rsa(私钥) id_rsa.pub(公钥) 两个文件
(服务端) 使用 公钥 加密的数据 需要使用 私钥 解密
(客户端) 使用 私钥 加密的数据 需要使用 公钥 解密 --------非对称加密算法
2.上传公钥到服务器
执行 ssh-copy-id -p port user@remote ,可以让远程服务器记住我们的公钥
这样远程Linux主机家目录下的.ssh目录,就会多出一个文件 authorized_keys
这样,我们再次登陆的时候就可以免密登陆了!
简述原理图
——————————————————————————————你以为完了?不!还有几个实用技巧!————++++++++
3.禁用密码登录
既然开启了SSH免密登陆,就可以把密码登陆关闭了。这样既可以快速连接远程服务器,也可以防止黑客攻击服务器,美滋滋啊。下面为具体步骤。 - 修改/etc/ssh/sshd_config
文件:
vim /etc/ssh/sshd_config
- 将其中3行命令更改,前面若带#,就删掉,作用是可以用密钥登陆服务器:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- 然后在修改其中
PasswordAuthentication
属性为no
,即禁用密码登陆:
PasswordAuthentication no
- 重启sshd服务使操作生效:
systemctl restart sshd.service
注
:本地密钥请保存好,远程服务器authorized_keys
中公钥也别乱修改。
4.配置别名
每次都输入 ssh -p port user@remote,会很麻烦,我们可以直接配置别名,便于记忆
加入我们配置 ssh root 来替代上方命令,我们只需在 ~/.ssh/config里面追加以下内容
Host wang
HostName ip地址
User 用户名
Port 22
保存之后,就可以直接用 ssh root实现远程登陆了