在有些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 用户登录(yes 、no 或 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配置注意事项:
- 备份配置文件:在修改配置文件之前,建议备份原始文件,以便在出现问题时可以恢复。
- 语法检查:使用
sshd -t
命令检查 SSH 服务器配置文件的语法是否正确。 - 权限设置:确保 SSH 配置文件和密钥文件的权限设置正确,否则可能导致 SSH 服务无法启动或连接失败。例如:私钥文件的权限应设置为 600:
chmod 600 ~/.ssh/id_rsa
- 防火墙设置:如果修改了 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