Linux安装启动ssh服务器以及ssh的配置

在有些Linux的发行版中,可能没有安装openssh-server,这篇文章讲解openssh-server的安装配置和启动,最后附加systemctl命令相关的操作。

ssh的安装:

1. 安装SSH服务(如果尚未安装):
debian系列操作:
sudo apt install openssh-server

centos系列操作:
sudo yum install openssh-server
2. 启动SSH服务:
sudo systemctl start ssh
3. 使SSH服务在系统启动时自动运行(开机自启):
sudo systemctl enable ssh
4. 检查SSH服务状态:
sudo systemctl status ssh

现在,SSH服务应该在Linux上运行,我们可以从远程客户端使用SSH来连接了。使用以下命令:

ssh [username]@[ip-address]

其中[username]是Linux用户名,[ip-address]是Kali Linux机器的IP地址。默认的ssh端口为22,正常情况下我们应该修改这个端口。

SSH 服务器配置文件常用项说明:

1. 文件位置
  • /etc/ssh/sshd_config
2. 常见配置项
配置项 说明 示例
Port 指定 SSH 服务监听的端口号(默认 22) Port 2222
PermitRootLogin 是否允许 root 用户登录(yesno 或 prohibit-password PermitRootLogin no
PasswordAuthentication 是否允许密码认证(yes 或 no PasswordAuthentication no
PubkeyAuthentication 是否允许公钥认证(yes 或 no PubkeyAuthentication yes
AllowUsers 指定允许登录的用户列表(空格分隔) AllowUsers user1 user2
DenyUsers 指定禁止登录的用户列表(空格分隔) DenyUsers user3
X11Forwarding 是否启用 X11 转发(yes 或 no X11Forwarding yes
MaxAuthTries 指定最大认证尝试次数 MaxAuthTries 3
ClientAliveInterval 设置服务器向客户端发送心跳消息的间隔(秒) ClientAliveInterval 120
3. 示例配置
4. 重启 SSH 服务
Debian系列:
sudo systemctl restart ssh


CentOS系列:
sudo systemctl restart sshd

SSH配置注意事项:

  1. 备份配置文件:在修改配置文件之前,建议备份原始文件,以便在出现问题时可以恢复。
  2. 语法检查:使用 sshd -t 命令检查 SSH 服务器配置文件的语法是否正确。
  3. 权限设置:确保 SSH 配置文件和密钥文件的权限设置正确,否则可能导致 SSH 服务无法启动或连接失败。例如:私钥文件的权限应设置为 600:
    chmod 600 ~/.ssh/id_rsa
  4. 防火墙设置:如果修改了 SSH 服务的端口号,需要确保防火墙允许新的端口通过。

systemctl工具的常见用法:

systemctl 是 Linux 系统中用于控制systemd系统和服务管理器的命令行工具。它用于启动、停止、重启、启用、禁用和查看系统服务的状态。systemctl的主要功能如下:

1.管理服务:
  • 启动服务:systemctl start <service>
  • 停止服务:systemctl stop <service>
  • 重启服务:systemctl restart <service>
  • 重新加载服务配置:systemctl reload <service>
  • 启用服务(开机自启):systemctl enable <service>
  • 禁用服务(取消开机自启):systemctl disable <service>
  • 查看服务状态:systemctl status <service>

2.管理服务案例:操作Nginx服务
  • 启动 Nginx 服务:
    sudo systemctl start nginx
  • 设置 Nginx 服务开机自启:
    sudo systemctl enable nginx
  • 查看 Nginx 服务状态:
    systemctl status nginx
  • 取消 Nginx 服务开机自启:
    systemctl disable nginx
  • 停止Nginx 服务:
    systemctl stop nginx