linux如何配置ssh

SSH服务,编辑配置文件设置端口、登录用户等,生成密钥对并分发公钥,重启SSH服务完成配置

Linux系统中,SSH(Secure Shell)是一种用于远程登录和安全数据传输的重要工具,以下是详细的SSH配置指南:

linux如何配置ssh

安装SSH服务

  1. 检查是否已安装:在终端输入ssh -V查看SSH客户端版本,输入sshd -V查看SSH服务端版本,若未安装,则进行安装。

  2. 安装SSH服务端和客户端:不同的Linux发行版安装命令有所不同,例如在Ubuntu/Debian系统中,使用sudo apt-get update更新软件源,然后sudo apt-get install openssh-server安装SSH服务端,sudo apt-get install openssh-client安装SSH客户端;在CentOS/RHEL系统中,使用sudo yum update更新软件源,然后sudo yum install openssh-server安装SSH服务端,sudo yum install openssh-clients安装SSH客户端。

配置SSH服务端

  1. 修改配置文件:SSH服务端的主配置文件是/etc/ssh/sshd_config,使用文本编辑器(如vinano)打开该文件,例如sudo vi /etc/ssh/sshd_config,常见的配置选项如下:

    • Port:设置SSH服务监听的端口号,默认是22,为了提高安全性,可以将其修改为其他端口号,如2222,修改后需重启SSH服务使配置生效。
    • PermitRootLogin:设置是否允许root用户通过SSH登录,出于安全考虑,一般建议设置为no,禁止root远程登录。
    • PasswordAuthentication:设置是否允许使用密码认证,可以将其设置为no,只允许使用密钥认证,以提高安全性。
    • AllowUsers:指定允许通过SSH登录的用户名,后面跟用户名列表,多个用户名用空格分隔。
  2. 设置登录欢迎消息:可以在/etc/ssh/sshd_config中设置Banner选项,指定一个包含欢迎消息的文件路径,当用户登录时,会先显示该文件中的内容,创建/etc/ssh/banner_message文件,在其中输入欢迎消息,然后在sshd_config中添加Banner /etc/ssh/banner_message

  3. 限制登录时间和IP范围:通过编辑/etc/security/time.conf文件,可以限制用户登录时间,添加规则sshd;;user;Al0800 1700,表示用户user只能在8点到17点之间登录,还可以通过编辑/etc/hosts.allow/etc/hosts.deny文件来限制允许或禁止登录的IP范围,在/etc/hosts.allow中添加sshd: 192.168.1.0/24,表示只允许192.168.1.0网段的IP访问SSH服务。

配置SSH客户端

  1. 生成密钥对:在客户端计算机上,使用ssh-keygen命令生成密钥对。ssh-keygen -t rsa会生成RSA类型的密钥对,包括私钥id_rsa和公钥id_rsa.pub,将公钥复制到服务器端的~/.ssh/authorized_keys文件中,以便实现免密码登录。

    linux如何配置ssh

  2. 配置别名:可以通过编辑~/.ssh/config文件来为经常访问的服务器设置别名,简化登录命令。
    | 配置项 | 值 |
    | –| –|
    | Host | myserver |
    | HostName | 192.168.1.100 |
    | User | username |
    | Port | 22 |
    | IdentityFile | ~/.ssh/id_rsa |

    这样,在登录时就可以使用ssh myserver代替复杂的命令。

重启SSH服务

在完成SSH配置后,需要重启SSH服务使配置生效,在Ubuntu/Debian系统中,使用sudo systemctl restart sshsudo service ssh restart命令;在CentOS/RHEL系统中,使用sudo systemctl restart sshdsudo service sshd restart命令。

常见问题及解决方法

  1. 无法连接SSH服务器:可能是防火墙阻止了SSH端口的访问,需要检查防火墙设置,允许SSH服务的端口通过,在Ubuntu中使用sudo ufw allow 22允许22端口通过防火墙;在CentOS中使用firewall-cmd --permanent --add-service=ssh添加SSH服务到防火墙允许列表,并使用firewall-cmd --reload重新加载防火墙配置。

  2. 密钥认证失败:可能是公钥没有正确添加到服务器端的authorized_keys文件中,或者权限设置不正确,需要检查公钥内容是否正确,以及authorized_keys文件和.ssh目录的权限是否为700和600。

FAQs

问题1:如何更改SSH的默认端口号?

linux如何配置ssh

回答:编辑SSH服务端的配置文件/etc/ssh/sshd_config,找到Port选项并将其值修改为想要设置的端口号,例如Port 2222,保存文件后,重启SSH服务使配置生效,需要确保防火墙允许新设置的端口号通过。

问题2:如何禁止root用户通过SSH登录?

回答:打开SSH服务端的配置文件/etc/ssh/sshd_config,找到PermitRootLogin选项,将其值设置为no,保存文件后,重启SSH服务,这样,root用户将无法通过SSH远程登录到服务器,提高了

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/54270.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月11日 10:16
下一篇 2025年7月11日 10:20

相关推荐

  • linux查看ubuntu版本命令?

    查看Ubuntu版本:,1. 使用命令 lsb_release -a 查看详细信息。,2. 查看 /etc/os-release 文件:cat /etc/os-release。,3. 运行 hostnamectl 命令也可显示系统信息。,4. 使用 uname -a 查看内核版本(非Ubuntu专属版本)。

    2025年7月6日
    000
  • 如何使用selinux

    SELinux需先查看其状态,通过编辑/etc/selinux/config文件设置模式,如enforcing(强制)、permissive(宽容),修改

    2025年7月14日
    000
  • 如何在Linux中快速拷贝文件?

    在Linux中使用cp命令拷贝文件,基本格式为cp 源文件 目标路径,添加-r参数可递归复制目录,-i启用覆盖确认,-f强制覆盖。

    2025年6月15日
    200
  • Linux怎么改主机名?

    在 Linux 中修改主机名主要有两种方法:,1. 使用 hostnamectl set-hostname 新主机名 命令(需要管理员权限),这是现代发行版推荐的方法,永久生效。,2. 手动编辑 /etc/hostname 文件(需要管理员权限),将旧主机名替换为新主机名。,修改后通常需要重启系统或运行 systemctl restart systemd-hostnamed 使更改完全生效。

    2025年6月20日
    000
  • Linux如何直接运行exe?

    Linux无法直接运行exe文件,需借助Wine等兼容层工具模拟Windows环境,安装Wine后,通过命令行或右键菜单运行exe安装程序,部分Windows程序可成功运行。

    2025年6月16日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN