您的位置:

Linux运维工程师必备知识 - SCP端口的设置和使用

一、SCP是什么?

SCP(Secure Copy)是一个在Linux系统中使用的基于SSH协议进行加密传输的文件传输工具,它可以安全地在本地系统和远程系统间复制文件。

通过SCP命令可以将本地的文件复制到远程服务器上,或者将远程服务器上的文件复制到本地,它的使用方式和Linux中常用的cp命令非常相似。

二、SCP的基本用法

SCP的基本用法非常简单,下面是一些常用的SCP命令:

# 将文件从本地复制到远程服务器
scp /path/to/local/file username@remote:/path/to/remote/directory

# 将文件从远程服务器复制到本地
scp username@remote:/path/to/remote/file /path/to/local/directory

# 将整个目录从本地复制到远程服务器
scp -r /path/to/local/directory username@remote:/path/to/remote/directory

# 将整个目录从远程服务器复制到本地
scp -r username@remote:/path/to/remote/directory /path/to/local/directory

上述命令中,/path/to/local/file是本地文件的路径,username是远程服务器的用户名,remote是远程服务器的IP地址或域名,/path/to/remote/directory是文件存放的目录。

其中,-r选项表示递归复制整个目录(包括子目录)。

三、SCP使用不同的端口

默认情况下,SCP使用的端口是22,如果远程服务器使用的是非标准的SSH端口,我们需要指定SCP使用的端口。

下面是指定SCP使用不同端口的命令:

# 将文件从本地复制到远程服务器(指定端口)
scp -P 2222 /path/to/local/file username@remote:/path/to/remote/directory

# 将文件从远程服务器复制到本地(指定端口)
scp -P 2222 username@remote:/path/to/remote/file /path/to/local/directory

# 将整个目录从本地复制到远程服务器(指定端口)
scp -r -P 2222 /path/to/local/directory username@remote:/path/to/remote/directory

# 将整个目录从远程服务器复制到本地(指定端口)
scp -r -P 2222 username@remote:/path/to/remote/directory /path/to/local/directory

上述命令中,-P选项指定SCP使用的端口号。

四、使用SSH配置文件

如果我们需要频繁地使用SCP进行文件传输,每次都输入完整的命令比较麻烦,我们可以使用SSH配置文件进行简化。

下面是一个简单的SSH配置文件,可以指定远程服务器的IP地址、用户名、端口号等信息:

Host remote
    Hostname 192.168.0.100
    User username
    Port 2222

上述配置文件中,remote是主机别名,可以是任意名称,Hostname指定远程服务器的IP地址或域名,User指定用户名,Port指定端口号。

使用SSH配置文件后,我们可以简化SCP命令为:

# 将文件从本地复制到远程服务器
scp /path/to/local/file remote:/path/to/remote/directory

# 将文件从远程服务器复制到本地
scp remote:/path/to/remote/file /path/to/local/directory

# 将整个目录从本地复制到远程服务器
scp -r /path/to/local/directory remote:/path/to/remote/directory

# 将整个目录从远程服务器复制到本地
scp -r remote:/path/to/remote/directory /path/to/local/directory

上述命令中,remote是配置文件中指定的主机别名。

五、总结

SCP是Linux系统中常用的文件传输工具,它可以安全地在本地系统和远程系统间复制文件。使用SCP命令可以将本地的文件复制到远程服务器上,或者将远程服务器上的文件复制到本地。通过指定端口或使用SSH配置文件,可以方便地进行文件传输。