linux SSH协议和scp工具的应用

主要介绍SSH功能以及scp工具的应用

SSH 介绍

SSH(Secure Shell)是一种网络协议和工具,用于在不安全的网络上建立安全的远程连接和数据传输。

SSH 的主要目的是提供加密的、安全的远程访问和管理方式,使用户可以通过不可信的网络(如互联网)安全地远程登录到远程计算机或服务器,并执行命令、传输文件等操作。

SSH的功能

安全性:SSH 使用加密技术(如对称加密、非对称加密和消息认证码)来保护远程连接的机密性和完整性,防止敏感信息在传输过程中被窃听或篡改。

身份验证:SSH 支持多种身份验证方式,包括密码身份验证、公钥身份验证和基于证书的身份验证。这样可以确保只有授权用户能够访问远程系统。

远程登录:SSH 客户端可以通过 SSH 协议与远程计算机建立连接,并在远程计算机上执行命令,从而实现远程登录和远程命令执行。

文件传输:SSH 提供了安全的文件传输机制,使用户可以使用工具如 scp(Secure Copy)或 sftp(Secure File Transfer Protocol)在本地计算机和远程服务器之间传输文件。

端口转发:SSH 支持本地和远程端口转发,允许通过安全的通道在本地计算机和远程服务器之间转发网络流量,实现远程访问内部服务或绕过防火墙限制。

由于 SSH 提供了安全、加密的远程访问解决方案,它被广泛用于远程服务器管理、远程维护、文件传输和安全通信等场景。

SSH 参数说明

ssh [参数] <用户名@主机>
-p <端口号>:指定 SSH 服务器的端口号。默认端口是 22,可以使用此参数指定其他端口。
-i <密钥文件>:指定用于身份验证的密钥文件路径。默认情况下,SSH 使用用户名和密码进行身份验证。使用此参数可以指定密钥文件进行密钥身份验证。
-l <用户名>:指定要使用的登录用户名。如果未指定此参数,则使用当前本地用户的用户名。
-C:开启压缩选项,传输过程中对数据进行压缩,可以加快传输速度。
-X:开启 X11 转发,允许远程服务器上的应用程序显示在本地计算机上。
-L <本地端口:目标主机:目标端口>:设置本地端口转发,将本地计算机上的端口转发到目标主机的目标端口。
-R <远程端口:本地主机:本地端口>:设置远程端口转发,将远程服务器上的端口转发到本地计算机的本地端口。
-D <本地端口>:开启动态端口转发,将本地计算机作为 SOCKS 代理,通过 SSH 连接路由网络流量。
-f:将 SSH 连接置于后台运行。
-q:静默模式,不显示详细的连接和认证信息。
-v:显示详细的连接和认证信息,可以用于调试和故障排除。

SSH 的应用

ssh -p 目标端口 远程计算机用户名@远程计算机ip地址

scp 介绍

scp 命令是基于 SSH(Secure Shell)协议进行文件传输的工具,它使用 SSH 服务的端口进行通信。默认情况下,SSH 使用的端口是 22。

要查看 scp 使用的确切端口,可以查看 SSH 服务的配置文件。SSH 服务器的配置文件位于 /etc/ssh/sshd_config。

scp 参数说明

语法:scp [参数] <源文件路径> <目标文件路径>

-r:递归复制目录及其内容。当源文件路径为目录时,使用此参数可以复制整个目录及其子目录。
-P :指定 SSH 服务器的端口号。默认端口是 22,可以使用此参数指定其他端口。
-i <identity_file>:指定用于身份验证的密钥文件路径。默认情况下,SCP 使用 SSH 默认的身份验证方式。使用此参数可以指定其他密钥文件。
-C:开启压缩选项,传输过程中对文件进行压缩,可以加快传输速度。
-p:保留源文件的属性(如文件权限、时间戳等)。使用此参数可以保持目标文件的属性与源文件相同。
-q:静默模式,不显示传输过程的详细信息。
-v:显示详细的传输过程信息,可以用于调试和故障排除。
-B:使用批处理模式,在传输多个文件时不询问确认。
-C:取消整个文件传输,而不是仅取消当前文件。
-l :限制传输带宽,以 Kbps 为单位。使用此参数可以控制传输速度,避免占用过多带宽。

scp 的应用

  • 本地上传复制文件到远程服务器
scp 文件名 remote_username@remote_ip:remote_folder
# 将a.json 文件 上传到远程服务器根目录下
例:scp a.json ubuntu@1.1.1.1:/

命令执行后需要输入密码。

  • 远程上传复制文件到本地
scp remote_username@remote_ip:file local_folder
# 将a.json 文件 上传到本地目录/usr/local/下
例:scp ubuntu@1.1.1.1:/etc/a/a.json /usr/local/
  • 如果要上传复制整个文件夹,需要携带-r
scp  -r remote_username@remote_ip:folder local_folder
#将file 文件夹 上传到本地目录/usr/local/下
例:scp -r ubuntu@1.1.1.1:/etc/a/file/ /usr/local/
  • 如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 使用端口号20160
scp -P 20160 ubuntu@1.1.1.1:/etc/a.json /usr/local/
  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值