Linux 怎么实现免输入密码,使用密钥登录
生成rsa密钥
如果你已经有密钥了(比如在用github
时生成过),这步可以跳过,在~/.ssh/
里找到自己的公钥即可
如果你已经有密钥了,请不要重复生成,会覆盖之前的密钥对
1 | ssh-keygen -t rsa |
也可以用别的非对称加密算法,这里不赘述了
会问你几个问题,直接一路回车就行了
可以看到用户目录下~/.ssh/
里面生成了两个文件
- id_rsa
- id_rsa.pub
windows
的cmd
下没办法用ssh-keygen
,可以使用git bash
或者Cmder
里带的ssh-keygen
,如果这些都没有`,可以在服务器上生成了下载下来。
把自己公钥保存到服务器上
需要注意:
一旦你的公钥(id_rsa.pub
)保存到服务器上,服务器登陆不需要密码,只需要验证你的私钥(id_rsa
),所以 生成的私钥一定要妥善保管,密钥被盗后果等同于登录密码被盗
登陆服务器
1 | vim ~/.ssh/authorized_keys #如果.ssh目录不存在,先创建即可:mkdir ~/.ssh |
在authorized_keys
里粘贴进去刚刚生成的 id_rsa.pub
的内容,如果authorized_keys
已经有内容了,换一行、粘贴到最后面
:wq
保存退出
修改用户目录的权限,这一步非常非常非常重要,用户目录权限过高将无法使用密钥登陆
1 | chmod 700 ~ |
修改服务器配置,允许使用密钥登陆
默认的ssh安装路径就在/etc/ssh/
现在大多数虚拟主机默认是开启密钥登录的
1 | vim /etc/ssh/sshd_config |
找到下面三行,去掉前面的注释符#
1 | RSAAuthentication yes |
可以试试能不能免密码登陆了
如果不能登陆,可以试试重启下sshd
1 | service sshd restart |