SSH服务器配置与文件传输指南
立即解锁
发布时间: 2025-09-09 02:01:23 阅读量: 10 订阅数: 54 AIGC 


Linux终端高效技巧精要
### SSH 服务器配置与文件传输指南
#### 1. 更改 SSH 服务器默认端口
在某些情况下,你可能需要更改 SSH 服务器的默认端口。比如,你要从一个限制非 80 或 443 端口外的出站连接的网络连接到服务器;或者你使用密码认证,想降低服务器被爬虫发现并遭受暴力攻击的风险,此时可以使用一个不常见的端口,如 79279。
若不确定所选随机端口是否不常见,可以使用 nmap 进行检查。nmap 默认未安装,需使用包管理器进行安装:
```bash
sudo apt-get install nmap
```
安装完成后,使用以下命令:
```bash
nmap --top-ports 1000 localhost -v -oG -
```
该命令将返回 1000 个最常用端口的列表,你可以参考此列表查看所选端口是否匹配。
#### 2. 打开防火墙
在更改端口之前,要确保没有防火墙或其他配置阻止传入流量。可通过以下命令检查防火墙是否启用:
```bash
sudo ufw status
```
如果 ufw 正在运行,可能需要配置它以接受所需端口的流量。若未运行,仍需处理云服务提供商的安全设置。例如,亚马逊 AWS 安全实例的安全规则是在服务器外部的安全组规则中设置的。许多云服务提供商都采用类似模式,默认仅开放 22 端口(可能还有 80 和 443 端口)以确保服务器安全。需与服务器提供商确认是否需要采取额外步骤来允许端口访问。
若 ufw 正在运行,可使用以下命令允许指定端口:
```bash
sudo ufw allow <port-number>
```
#### 3. 修改 sshd_config 文件
可以通过编辑 `/etc/ssh/sshd_config` 文件来修改 SSH 服务器的设置。在实时服务器上更改端口之前,要确保所选端口可访问。若将端口更改为阻止传入请求的端口,可能会导致无法访问服务器。
要更改默认端口,只需找到类似如下的注释行:
```plaintext
#Port 22
```
取消注释该行,并将 22 替换为所选端口,例如:
```plaintext
Port 7929
```
注意:SSH 服务器的默认端口也可以在客户端的 SSH 配置文件中指定,这样在连接服务器时就无需使用 `-p` 标志指定端口。
更新文件后,需要重启 SSH 服务:
```bash
sudo service ssh restart
```
#### 4. 文件传输工具
##### 4.1 FTP
FTP(文件传输协议)是最常用的文件传输协议之一。要开始使用 FTP,需安装 `lftp` 这个功能强大的文件传输程序,它主要用于 FTP,但也可用于其他协议:
```bash
sudo apt-get install lftp
```
安装完成后,可使用以下命令进入交互模式:
```bash
lftp
```
这将打开一个交互式 shell,可在其中运行特定的 `lftp` 命令。`lftp` shell 的操作与普通的 bash shell 类似,可使用 `ls` 和 `cd` 等命令,还能使用其他额外命令。若要查看可用命令,只需输入 `?` 并按回车键。
最重要的命令是 `connect`,使用方法如下:
```bash
connect -u <username> <server-address>
```
执行该命令后,系统会提示输入密码。连接成功后,可使用以下命令下载文件:
```bash
get <file-name>
```
或使用以下命令上传文件:
```bash
put <file-name>
```
如果你想找 FTP 服务器练习,又不想自己搭建,可以使用 Google dork 查找未受保护的 FTP 服务器,例如 `intitle:"index of" inurl:ftp`。
##### 4.2 SFTP
SFTP 是 FTP 的一个流行且易用的替代方案。它的文件传输方式与 FTP 类似,但通过 SSH 会话使用的 22 端口进行传输。如果你已经在服务器上使用 SSH,那么使用 SFTP 连接服务器应该没有问题,且服务器和连接客户端都无需额外安装软件。大多数 SSH 安装都包含 SFTP,除非是轻量级版本。
要开始使用 SFTP,只需将通过 SSH 连接服务器的命令中的 `ssh` 替换为 `sftp` 即可,例如:
```bash
sftp [email protected]
```
若使用 PEM 文件进行认证(如常见的 AWS 服务器),可使用以下命令:
```bash
sftp -i ~/.ssh/key.pem [email protected]
```
连接前需注意,连接时所在的目录将是你打算进行下载或上传的目录。
登录服务器后,可使用一些 SSH 会话中常用的命令,但并非全部。最重要的是,可使用 `ls` 和 `cd` 命令浏览文件系统。
若要下载文件,导航到相应文件夹并使用 `get` 命令:
```bash
get readme.txt
```
若一切正常,你将看到确认下载的输出。按 `ctrl+c` 可断开 SFTP 连接,回到本地机器后,运行 `ls` 命令应能看到下载的文件。
若要上传文件,使用 `put` 命令。同样,在通过 SFTP 连接前,导航到包含要上传文件的文件夹。连接到服务器后,导航到要上传文件的目标位置,输入 `put` 并留一个空格,然后按 `tab` 键,将显示该目录中的文件列表。
##### 4.3 SCP
SCP(安全复制协议)通常随 SSH 一起提供。其功能与 SFTP 类似,但不具备交互性。使用 SCP 进行上传或下载必须在一个命令中完成,而不是先连接到机器再浏览目录。
虽然 SCP 看起来不如 SFTP,因为它没有额外功能且交互性较差,但在文件传输方面,SCP 比 SFTP 更快。对于中小文件,这种差异可能不明显,但在传输大文件时,你可能会选择 SCP 而非 SFTP。如果你在脚本中进行文件传输,交互模式可能会成为障碍,此时也可考虑使用 SCP。
要从服务器下载文件,只需运行 `scp` 命令,后跟 `username@serverName`、`:/file/location`(无空格),以及本地机器上保存文件的路径,例如:
```bash
scp [email protected]:/tmp/myFile.txt ./
```
0
0
复制全文
相关推荐









