在Linux上如何禁止ssh使用密码登录
时间:2019-11-20 08:53:49 来源:igfitidea点击:
在CentOS/RHEL/Fedora/Debian中,如何禁止SSH客户端使用密码登录?
在Linux操作系统上如何禁用SSH密码身份验证?
如何设置SSH只能使用密钥登录?
创建新的用户
创建一个新用户Hyman
# useradd -m -s /bin/bash Hyman
使用passwd命令设置用户密码:
# passwd Hyman
将用户添加到sudo(Ubuntu/Debian)组。
如果使用的是CentOS/RHEL/Fedora Linux,则将用户添加到wheel组:
# usermod -aG sudo Hyman
在RHEL/CentOS Linux,执行:
# usermod -aG wheel Hyman
使用id命令检查:
# su - Hyman $ id Hyman
如果使用现有用户,则直接添加到sudo或wheel组。
# usermod -aG sudo userNameHere #Debian/Ubuntu # usermod -aG wheel userNameHere #CentOS/RHEL
在服务器上安装ssh密钥
在本地系统创建创建密钥对:
$ ssh-keygen -t rsa
在远程服务器上安装公钥:
$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]
测试使用ssh密钥库登录:
$ ssh [email protected]
禁止使用密码登录服务器
编辑/etc/ssh/sshd_config文件,输入:
$ sudo vi /etc/ssh/sshd_config
查找ChallengeResponseAuthentication并将其设置为no:
ChallengeResponseAuthentication no
将PasswordAuthentication也设置为no
PasswordAuthentication no
搜索UsePAM并将其也设置为no:
UsePAM no
最后查找PermitRootLogin并设置为no:
PermitRootLogin no
重启ssh服务器或者重新加载:
# /etc/init.d/ssh reload
在基于systemd的Linux发行版中,使用systemctl命令重启ssh服务或重新加载:
$ sudo systemctl reload ssh
在RHEL/CentOS Linux上重新加载ssh
# /etc/init.d/sshd reload