ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数

这篇具有很好参考价值的文章主要介绍了ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

服务器:
ssh登录限制,ssh,运维,linux

客户端:
ssh登录限制,ssh,运维,linux

 在下面不再说明服务器和客户端。

1.修改ssh默认端口

是在服务器中设置。

该设置涉及三部分:sshd配置文件修改/增加新端口、Selinux添加新端口、Firewall开放新端口。

vim /etc/ssh/sshd.config,找到#Port行, 默认Port策略是22号,取消注释就可以修改端口值,也可以保留22号端口,再添加一行写其他端口。添加的端口号建议在10000-65535之间,防止和系统端口冲突。例如,我们保留端口22号的同时添加32222端口。如果需要将22端口修改为32222,只需要将22端口注释即可。

ssh登录限制,ssh,运维,linux

 当修改完之后需要重启服务:systemctl restart sshd
查看sshd的状态:发现错误信息,端口32222是没有许可的
ssh登录限制,ssh,运维,linux

原因是:Selinux并不知道ssh的端口出现了改变, 可以使用semanage工具对Selinux进行设置。
查询系统是否有该工具,如果没有安装则进行安装。
ssh登录限制,ssh,运维,linux
查看当前端口,可以使用ss(等于netstat),我们使用semanage port -l命令
ssh登录限制,ssh,运维,linux
那我们将ssh的新端口添加进去
ssh登录限制,ssh,运维,linux
 此时还未生效,我们需要重启sshd服务使得新端口生效。
ssh登录限制,ssh,运维,linux
以修改之后的端口进行远程登入,如果没有指定用户名,则表示使用与当前本地用户相同的用户名登录远程服务器servera。
ssh登录限制,ssh,运维,linux
出现错误,no route to host,原因是:防火墙的对应端口32222没打开
防火墙端口查看和设置如下
ssh登录限制,ssh,运维,linux

 上述,就完成了添加一个ssh端口登入的操作:
ssh登录限制,ssh,运维,linux

如果,我们仅仅想修改掉默认端口22为32222,那我们在/etc/ssh/sshd.config配置文件中删除22端口这一行即可。并且重启,可以看到sshd进程只运行在新端口上了。
ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux

现在只能新端口登入了,默认端口已经不能登入。

ssh登录限制,ssh,运维,linux

防火墙和Selinux去掉加入的端口:

ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux

2.禁止root登入和限制密码试错的最大次数

是在服务器中设置。

修改/etc/ssh/sshd.config文件中的以下位置
OpenSSH服务器使用/etc/ssh/sshd_config配置文件中的PermitRootLoain配置设置,以允许或禁止用户以root身份登录系统。当PermitRootLogin参数设为yes时,这也是默认设置,用户被允许以root身份登录系统。要防止这种情况,可将该值设为no。或者,若要禁止基干密码的身份验证,但允许对root执行基于私钥的身份验证,可将PermitRootLogin参数设为without-password。
OpenSSH服务器使用/etc/ssh/sshd_config配置文件中的PasswordAuthentication参数,用于控制用户在登录系统时能否使用基于密码的身份验证。Password Authentication参数的默认值是yes,这会使SSH服务器允许用户在登录系统时使用基于密码的身份验证。PasswordAuthentication的值为no时禁止用户使用基于密码的身份验证。
请记住,每当您更改/etc/ssh/sshd_config文件时,都必须重新加载sshd服务让更改生效,即systemctl reload sshd。
请记住,如果您为ssh关闭基于密码的身份验证,则需要有一种办法来确保用户在远程服务器上的
~/.ssh/authorized_keys文件中填充有公钥,以便可以登录。

ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux

 3.免密登入

客户端ssh登入服务器的形式一般来说是交互式的,需要输入密码;这对于脚本执行很不友好。有时候脚本执行需要免密直接登入不同的服务器,那么免密设置就非常有必要了。

客户端root用户目录中的/root/.ssh文件夹,在无任何ssh远程登入服务器的时候是空的。使用ssh登入服务器,就会提示连接后会将服务器的指纹永久的加入known_hosts文件中。因此我们从该文件就可以看出,客户端曾连过多少台服务器。并且我们可以知道,这种方式登入,不管登入几次都是需要交互式的输入服务器账号对应的密码登入。
ssh登录限制,ssh,运维,linux
客户端中known_hosts文件的公钥信息来自于服务器中/etc/ssh/ssh_host_*.pub文件。例如上面公钥信息ecdsa加密方式,那么对应的就是服务器的ssh_host_ecdsa_key.pub文件,如下图
ssh登录限制,ssh,运维,linux
 

基于密钥的身份,甚至免密登入:

/etc/ssh/目录下面的密钥对,是系统自动生成提供给客户端登入的。/root/.ssh/目录下面的密钥对是用户自己手动生成的,目的是为了基于密钥的身份,甚至免密登入。

客户端执行密钥生成命令:ssh-keygen -t rsa,我们选择默认的存储位置,可以选择密钥的密码(也可以不设置直接回车),生成rsa加密方式的密钥对,默认保存在/root/.ssh/文件夹中,公钥文件以pub结尾。
ssh登录限制,ssh,运维,linux

首先查看服务器用户目录下面的.ssh文件夹,可以看到文件夹内没有authorized文件
ssh登录限制,ssh,运维,linux
我们在客户端中执行命令:ssh-copy-id root@servera
在可以使用基于密钥的身份验证之前,需要将公钥复制到服务器(目标系统)上。ssh-copy-id命令可将 SSH密钥对的公钥复制到目标系统。如果在运行ssh-copy-id时省略了公钥文件的路径,它会使用默认的/home/user/.ssh/id_rsa.pub文件。这里我们是省略了指定公钥文件的路径。
ssh登录限制,ssh,运维,linux
这个时候我们就可以基于密钥的身份登入服务器ssh servera,我们还是需要交互式的输入自己创建密钥对时设置的密码。注意,这里发生了本质区别,以前登入需要输入服务器端的用户密码,密码由服务器拥有者可以随意改动;现在登入需要输入的是客户端拥有者的密钥密码,由自己控制。
将公钥成功传输到远程系统后,我们可以使用对应的私钥对远程系统进行身份验证,同时通过SSH登录远程系统。如果在运行ssh命令时省略了私钥文件的路径,它会使用默认的/home/user/.ssh/id_rsa文件。这里我们省略了指定私钥文件的路径。
ssh登录限制,ssh,运维,linux

如果我们要达到真正的免密(免客户端自己的密钥密码)有两种方式:
方式一,创建密钥对的时候不设置密钥密码,这样在登入的时候也不会出现交互式的让我们输入密钥密码。但是有安全问题,在这种情况下,任何拥有您私钼文件的人都可以使用它进行服务器的身份验证,如果您设置了密码,则在使用私钥进行身份验证时需要输入此密语。
方式二,已经设置了密钥密码,通常必须输入密语才能使用私钥进行身份验证。但是,我们可以使用名为ssh-agent的程序临时将密语缓存到内存中。之后,当我们使用SSH通过私钥登录另一个系统时,ssh-agent会自动为我们提供密码。这样做不仅方便,而且能减少他人“肩窥”您密码输入的机会,从而提高安全性。

方式二具体操作
运行eval $(ssh-agent)命令,将启动ssh-agent并自动为该shell会话设置这些环境变量。此外,它还显示ssh-agent进程的PID。
一旦ssh-agent开始运行,我们需要告诉它私钥密语或密钥。运行ssh-add命令会添加分别来自/home/user/.ssh/id_rsa(默认)文件的私钥。。如果我们使用的是默认文件之外的私钥文件,必须将-i 选项用于ssh命令来指定私钥文件的路径。
当我们注销启动了ssh-agent的会话时,将退出进程,并且您的私钥密语也将从内存中清除。
ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux

4.安全模式强制修改root密码

 有时候root密码忘记了,这个时候我们需要强制修改root密码。该方式适合能调整linux系统的启动界面。

#重启linux系统后进入开机菜单,光标移至第一个选项后(一般选第一个内核),敲击键盘 e 键:

#在倒数第二行结尾处输入 rd.break console=tty0


#按 ctrl+x 继续启动。
#这个时候就进入了紧急模式emergency mode,在该界面下,输入如下命令

mount -o rw,remount /sysroot  #重新挂在sysroot目录
chroot /sysroot  #切换到sysroot环境
echo "redhat" | passwd --stdin root  #直接更改root密码为redhat,echo root:redhat|chpasswd
touch /.autorelabel  #新建autorelabel文件,用来重新建立标签文件
exit  #退出sysroot环境
exit #退出emergence模式,进入系统重启

#重启之后root就可以使用新密码redhat登入

ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux
ssh登录限制,ssh,运维,linux文章来源地址https://www.toymoban.com/news/detail-638525.html

到了这里,关于ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 修改 SSH 默认22端口

    Linux 默认端口号为22,使用起来非常不安全,所以需要修改端口号 ssh_config 是客户端 sshd_config 是服务端 在 #Port 22 下一行添加 Port xxx(你的端口号) 系统没有任何提示表示成功 如果重启 sshd 错误,有可能出现以下错误信息 “Job for sshd.service failed because the control process exited with error

    2024年01月18日
    浏览(33)
  • 如何修改系统默认的ssh端口?

    修改系统默认的ssh端口为1222,参考步骤如下: 1、修改sshd配置文件 将该文件里面的“ # port 22 ”参数改为“ port 1222 ”后保存退出 2、端口修改完成后在重启ssh服务

    2024年02月11日
    浏览(34)
  • 服务器安全-修改默认ssh端口

         

    2024年02月10日
    浏览(26)
  • 修改SSH默认端口,使SSH连接更安全_advanced ssh settings”中设置端口号

    yum provides semanage 安装 yum -y install policycoreutils-python-2.5-34.el7.x86_64 el 不是1 查询semanage ssh 已开设端口 semanage port -l | grep ssh 增加新端口 semanage port -a -t ssh_port_t -p tcp 2200 删除端口 semanage port -d -t ssh_port_t -p tcp 2200 3、防火墙端口设置(如果启用) #增加端口 firewall-cmd --zone=public -

    2024年04月12日
    浏览(58)
  • Ubuntu安装ssh开启22端口并设置允许root远程登录

    注意:我的Ubuntu版本22.04.1 1、安装ssh 2.激活root用户 3、设置允许root通过ssh登录 将 PermitRootLogin 改为 yes 4、重启ssh  到这里就好了

    2024年01月24日
    浏览(55)
  • 【干货】Android系统定制基础篇:第十四部分(禁止第三方应用调用系统设置、增加TP配置、增加摄像头镜像设置、增加摄像头默认角度设置、修改默认语言)

    修改文件 frameworksbasecorejavaandroidappActivityManagerNative.java 如下: 属性配置: Android 主板定制过程中经常出现客户需要临时适配各种 TP(包括 USB TP),因此在设置菜单中加入 xy 交换,x 反转,y 反转常用配置,以客户多样性需求。 以下修改基于Android 8.1 SDK,如下: 属性配置

    2024年02月10日
    浏览(28)
  • Linux禁止root用户ssh登录

    出于安全考虑,需要禁止使用root用户通过ssh远程登录Linux 禁用root用户远程登录后,需要提供一个权限用户用于ssh远程登录 useradd命令用于创建一个用户, 选项 -m 表示创建用户的主目录, -c 表示添加注释 注意:密码长度应该不少于8位,包括字母大小写、数字和特殊符号,且

    2024年02月09日
    浏览(36)
  • Windows下配置SSH实现免密访问和远程端口转发

    最近想要配置自家的电脑用作服务器,方便自己远程访问。 由于没有静态IP,最开始想使用DDNS,从花生壳注册了一个域名,然后在路由配置端口转发,配置完成后,发现家里网络是光猫拨号的,路由器自动获取ip,转发的依然是内网ip,局域网可以访问,但是外网仍然访问不

    2024年02月02日
    浏览(34)
  • 简单几步学会Linux用户使用SSH远程免密登录,LinuxSSH服务器配置允许/禁止某些用户远程登录

    本文基于Linux上CentOS 7版本配合Xshell 7进行演示 目录 一.SSH简介 1.介绍 2.工作流程 二.具体配置免密步骤 1.配置前准备工作 2.正式配置过程 三.在服务器端配置SSH远程黑白名单 1.配置文件/etc/ssh/sshd_config部分参数解析 2.配置远程登录黑白名单 SSH用于计算机之间的加密登录,是一类

    2024年02月22日
    浏览(41)
  • 配置root账户ssh免密登录并使用docker-machine构建docker服务

    Docker Machine是一种可以在多种平台上快速安装和维护docker运行环境,并支持多种平台,让用户可以在很短时间内在本地或云环境中搭建一套docker主机集群的工具。 使用docker-machine命令,可以启动、审查、停止、重启托管的docker 也可以升级Docker客户端和守护程序并配置docker客户

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包