如何禁止使用口令只允许使用密钥建立SSH 连接?
发布网友
发布时间:2022-04-25 19:35
我来回答
共2个回答
热心网友
时间:2022-04-12 21:30
1. 创建 SSH KEY
使用ssh-keygen生成一个密钥对,并且将公钥注册到服务器的 $HOME/.ssh/authorized_keys 文件。
2. 确保启用 SSH 公钥认证功能
查看 /etc/ssh/sshd_config 文件,确保以下两条为 yes:
RSAAuthentication yes
PubkeyAuthentication yes
一般它们默认都是 yes,如果不是,请修改为 yes,保存并且重启 SSH 服务:
$ sudo service ssh reload
3. 禁止密码安全验证
编辑 /etc/ssh/sshd_config 文件,确保以下内容出现在文件中:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
保存并重启 SSH 服务:
$ sudo service ssh restart
如果你当前处于 SSH 连接登录状态,可能重启服务会失败,可以尝试重启系统。
4. 禁止特定条件使用密码登录
有时我们并不想禁止所有用户的口令登录,可以通过配置 sshd_config 文件来实现对特定对象的登录设置。
使用 $ man sshd_config 查看帮助信息。sshd_config 支持在文件中增加 Match 区块,如果 Match 关键字所在行的条件匹配成功,则 Match 后所有的关键字将被逐个加载,直到遇见另一个 Match 关键字或者文件结尾。所以一般 Match 区块添加在 sshd_config 文件末尾。
Match 关键字支持的条件包括 User, Group, Host 和 Address,条件样式是单个字符串,多个样式使用逗号分隔,也可以使用通配符(*)和求反符号(!)。
Address 条件样式可以是 CIDR(地址/掩码)格式,例如:192.0.2.0/24 或 3ffe:ffff::/32。
例如禁止用户 foo,用户组 bar 使用口令登录,在 /etc/ssh/sshd_config 文件末尾添加以下内容:
Match User foo, Group bar
PasswordAuthentication no
禁止除用户 foo 以外其他用户使用口令登录:
Match User *, !foo
PasswordAuthentication no
Match 区块支持的关键字包括:
AllowAgentForwarding, AllowTcpForwarding, AuthorizedKeysFile, AuthorizedPrincipalsFile, Banner, ChrootDirectory, ForceCommand, GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, KbdInteractiveAuthentication, KerberosAuthentication, MaxAuthTries, MaxSessions, PasswordAuthentication, PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTunnel, PubkeyAuthentication, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11Forwarding, X11UseLocalHost.
如何禁止使用口令只允许使用密钥建立SSH 连接?
1. 创建 SSH KEY使用ssh-keygen生成一个密钥对,并且将公钥注册到服务器的 $HOME/.ssh/authorized_keys 文件。2. 确保启用 SSH 公钥认证功能查看 /etc/ssh/sshd_config 文件,确保以下两条为 yes:RSAAuthentication yesPubkeyAuthentication yes一般它们默认都是 yes,如果不是,请修改为 yes,保存并且...
如何在Ubuntu 14.04上启用SSH无密码登录?
为了确保安全,禁用密码登录并配置SSH:使用文本编辑器打开/etc/ssh/ssh_config,去掉密码登录相关注释,进行相应的设置。最后,重启SSH服务并测试:修改完成后,通过命令重启SSH服务,现在你可以尝试无密码使用密钥对登录SSH服务端了。
Linux用户使用密钥登录详解
场景一:禁用root口令登录,root用户只使用密钥登录调整ssh配置[root@k8s-etcd-2?~]#?vim?/etc/ssh/sshd_configRSAAuthentication???yes???#取消注释,开启RSA验证PubkeyAuthentication???yes???#取消注释,开启使用密钥验证登录 使用ssh-keygen来生成RSA密钥id_rsa 文件为私钥 id_rsa.pub是公钥 使用参...
如何在Linux系统中禁止root管理员通过SSH远程登录?
重要参数如Port(默认22)、HostKey(存放私钥位置)和PermitRootLogin(是否允许root登录)等。在RHEL 7系统中,sshd服务通常已预装启用,可通过ssh命令进行连接,但建议禁用root远程登录以提高安全性。要实现此目的,需使用Vim编辑器打开sshd_config,将PermitRootLogin参数的井号去掉并改为no。修改配置后,需...
如何设置 Ubuntu 14.04 的 SSH 无密码登录
如果你想启用这个安全的方式,我们只需简单的禁用密码登录并只允许加密密钥登录即可。使用这种方式时,客户端计算机上会产生一对私钥和公钥。接着客户端得把公钥上传到SSH服务端的authorized_key文件中去。在授予访问前,服务器及客户端电脑会校验这个密钥对。如果服务器上的公钥与客服端提交的私钥匹配则授予...
将贝尔金路由器设置为只用SSH连接的方法
4、在路由器上产生一对RSA密钥就会自动启用SSH.如果你删除这对RSA密钥,就会自动禁用该SSH服务器。5、实施SSH的最后一步是启用认证,授权和审计。在你配置AAA的时候,请指定用户名和口令,会话超时时间,一个连接允许的尝试次数。6、在验证了配置之后,你就可以强制那些你在AAA配置过程中添加的用户使用...
ssh——渗透篇
修改端口号,通过修改/etc/ssh/sshd_config文件并重启服务。关闭SSH的PAM认证与禁用口令认证,可进一步提高安全性。iptables防火墙设置在CentOS中,需要下载iptables和iptables-services,然后启动服务并创建规则。SSH登录信息查看使用命令如lastb、lastlog、w、vim /var/log/secure。SSH远程登录示例:ssh root@...
SSH 密钥配置教程
确认公钥与私钥是否匹配,可以使用 ssh-keygen 命令进行验证。下面手动演示具体流程 登录远程服务器 简单情况下,通过手动指定私钥文件登录。配置客户端,可自动指定私钥文件 配置 SSH 客户端,使其默认使用指定的私钥文件进行身份验证。配置远程主机 sshd 的配置 通常情况下,远程主机的 sshd 配置文件不需要...
ssh 双机互信:免密码登录设置步骤及常见问题
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 7、ssh ip 或 hostname 均提示:connection refused 目标主机的ssh server端程序是否安装、服务是否启动,是否在侦听22端口;是否允许该用户登录;本机是否设置了iptables规则,禁止了ssh的连入/连出;具体请参考: http://hi.baidu.com/leejun...
猜测出远程SSH服务存在可登录的用户名口令?
no 也即只能使用密匙认证的openssh,禁止使用口令认证。修改完后执行 service sshd reload 重新加载ssh配置文件即可生效。千万别stop服务,如果你当前是用ssh连接这个服务器,stop后会直接断开连接,没法继续操作了。最好先把目密钥方式调通了再屏蔽口令。以防出错后哪种方式都没法登陆。