1.引言
sshd(Secure Shell daemon)是Linux系统中用于提供安全远程访问的服务。通过sshd服务,用户可以使用SSH(Secure Shell)协议远程连接到Linux服务器,并进行安全的访问和操作。本文将详细介绍在Linux中如何使用sshd服务。
2.安装sshd服务
在大多数Linux发行版中,sshd服务已经预装,如果没有安装,则可以通过包管理器进行安装。
$ sudo apt-get install openssh-server # Ubuntu/Debian/Mint
$ sudo yum install openssh-server # CentOS/RHEL
安装完成后,sshd服务将自动启动,并在默认端口(22)监听。
3.sshd服务配置
sshd服务的配置文件为/etc/ssh/sshd_config。可以使用文本编辑器来编辑该文件。
$ sudo nano /etc/ssh/sshd_config
3.1 更改监听端口
默认情况下,sshd服务在端口22上监听。为了增加安全性,可以将其更改为其他端口。
# Port 22
Port 2222
保存并关闭文件后,需重启sshd服务使更改生效。
$ sudo systemctl restart sshd
3.2 禁用root登录
为了增加系统的安全性,建议禁用root用户直接登录服务器。可以通过编辑/etc/ssh/sshd_config文件实现。
# PermitRootLogin yes
PermitRootLogin no
保存并关闭文件后,需重启sshd服务使更改生效。
$ sudo systemctl restart sshd
3.3 允许特定用户登录
如果只允许特定的用户登录到服务器,可以使用AllowUsers指定可访问的用户名列表。可以将逗号分隔的用户名添加到/etc/ssh/sshd_config文件中。
AllowUsers user1,user2,user3
保存并关闭文件后,需重启sshd服务使更改生效。
$ sudo systemctl restart sshd
3.4 使用密钥登录
密钥登录可以提供更高的安全性。要启用密钥登录,请确保在本地计算机上生成SSH密钥对,并将公钥复制到远程服务器上的~/.ssh/authorized_keys文件中。
示例代码如下:
# 生成密钥对
$ ssh-keygen -t rsa
# 将公钥复制到远程服务器
$ ssh-copy-id user@remote_server
配置文件中需要启用公钥登录:
# PubkeyAuthentication yes
PubkeyAuthentication yes
保存并关闭文件后,需重启sshd服务使更改生效。
$ sudo systemctl restart sshd
4.使用sshd服务
在配置并启动sshd服务后,可以使用SSH客户端连接到Linux服务器。以下是使用OpenSSH客户端连接Linux服务器的示例:
$ ssh user@remote_server
其中,user是允许登录的用户,remote_server是远程服务器的IP地址或域名。
4.1 SSH会话管理
一旦成功连接到远程服务器,就可以在SSH会话中执行命令、上传和下载文件等操作。
4.2 前台和后台运行命令
在SSH会话中,可以运行前台和后台命令。前台命令会占据终端并一直运行,而后台命令会在后台运行。
# 前台运行命令
$ command
# 后台运行命令
$ command &
4.3 SCP命令
SCP(Secure Copy)命令可以在本地系统和远程服务器之间复制文件和目录。
示例代码如下:
$ scp file.txt user@remote_server:/path/to/destination
$ scp -r directory/ user@remote_server:/path/to/destination
4.4 停止sshd服务
如果需要停止sshd服务,可以使用以下命令:
$ sudo systemctl stop sshd
5.总结
本文介绍了在Linux中使用sshd服务的详细步骤。通过配置和使用sshd服务,可以实现安全的远程访问和操作。为了最大程度地提高系统的安全性,建议遵循最佳实践,并根据实际需求进行合理的配置。
参考:
1. OpenSSH官方文档:https://www.openssh.com/
2. Linuxize:https://linuxize.com/post/how-to-enable-ssh-on-ubuntu-18-04/