linux服务器使用ssh秘钥登录以及禁用ssh密码登录。
0. 使用密钥登录
任意电脑(服务端 客户端都可以)执行:
1 | ssh-keygen |
将产生密码电脑的~/.ssh/id_rsa.pub (活着现成的公钥) 中的内容复制到 服务器对应账户下的 ~/.ssh/authorized_keys
,私钥存在主机上的~/.ssh/id_rsa
也可以对每个服务器账户单独配置私钥, 编辑~/..ssh/config
, 结尾加入:
1 | Host $configname |
1. 基本修改
编辑sshd
文件:
1 | sudo vim /etc/ssh/sshd_config |
找到 PermitRootLogin 改为禁用密码登录(取消注释 )
1 | PasswordAuthentication no |
2. 额外修改
如果是Ubuntu,则还需要额外修改:
1 | sudo vim /etc/ssh/sshd_config.d/50-cloud-init.conf |
修改为以下设置:
1 | PasswordAuthentication no |
3. 权限设置
一般默认权限不需要修改,但如果用户手欠修改了权限导致登录不上,则在该用户目录下进行以下权限操作:
1 | chown -R $username:$username .ssh #修改所属组和用户 |