论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
运维.售后
›
运维.售后
›
【Linux】SSH:远程连接
【Linux】SSH:远程连接
风雨同行
金牌会员
|
2024-10-28 12:12:51
|
显示全部楼层
|
阅读模式
楼主
主题
977
|
帖子
977
|
积分
2931
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
基础配置与连接
修改配置
SSH的配置文件通常位于/etc/ssh/sshd_config。可以通过以下命令编辑:
sudo vi /etc/ssh/sshd_config
复制代码
常见配置选项:
端口
:默认是22,可以通过修改Port选项更改SSH服务的监听端口,增强安全性。
答应的用户
:使用AllowUsers选项可以指定哪些用户有权限通过SSH登录,从而限制访问。
禁用root登录
:通过设置PermitRootLogin no来防止直接以root用户身份登录,减少被攻击的风险。
密码认证
:可以通过PasswordAuthentication no禁用密码登录,只答应使用密钥认证,从而进步安全性。
修改完配置后,重启SSH服务以使更改见效:
sudo systemctl restart ssh
复制代码
生成SSH密钥对
为了使用密钥认证,可以生成SSH密钥对。执行以下命令:
ssh-keygen -t rsa -b 4096
复制代码
根据提示选择文件保存位置(默认是~/.ssh/id_rsa),并设置一个密码以增强密钥的安全性(可选)。
将公钥复制到远程主机
使用ssh-copy-id命令将公钥复制到远程主机,确保无密码登录:
ssh-copy-id user@remote_host
复制代码
这将把公钥添加到远程主机的~/.ssh/authorized_keys文件中,使得以后可以通过密钥登录。
远程连接
使用以下命令连接到远程主机:
ssh user@remote_host
复制代码
假如你更改了SSH端口,可以使用以下格式指定端口:
ssh -p port user@remote_host
复制代码
SSH端口转发是一种通过SSH协议将网络流量从一个端口安全地转发到另一个端口的方式。它紧张有三种类型:本地端口转发、远程端口转发和动态端口转发。下面是具体介绍每种类型的用法及示例。
端口转发
本地端口转发
本地端口转发答应你将本地盘算机的某个端口流量转发到远程主机的指定端口。
语法:
ssh -L [本地端口]:[目标主机]:[目标端口] user@remote_host
复制代码
示例:
假设你希望访问远程数据库服务器(远程主机)上的MySQL服务(默认端口为3306),可以使用如下命令:
ssh -L 3306:localhost:3306 user@remote_host
复制代码
此时,在本地盘算机上访问localhost:3306就相当于直接访问远程主机的MySQL服务。
远程端口转发
远程端口转发答应你将远程主机的某个端口流量转发到本地盘算机的指定端口。
语法:
ssh -R [远程端口]:[目标主机]:[目标端口] user@remote_host
复制代码
示例:
假设你希望让远程主机的某个服务(如HTTP)访问你本地的Web服务器(运行在本地的80端口),可以使用如下命令:
ssh -R 8080:localhost:80 user@remote_host
复制代码
如许,在远程主机上访问localhost:8080将会被转发到你的本地Web服务器。
动态端口转发
动态端口转发答应你通过SSH创建一个SOCKS署理,能够转发任意流量。这对于需要通过SSH隧道访问多个目的地时非常有用。
语法:
ssh -D [本地端口] user@remote_host
复制代码
示例:
你可以运行以下命令来创建一个SOCKS署理:
ssh -D 1080 user@remote_host
复制代码
然后在本地盘算机上配置你的应用程序(如浏览器)使用SOCKS署理localhost:1080。全部通过这个署理的流量都会通过SSH隧道安全地转发到远程主机。
SSH配置文件
SSH配置文件
:可以在~/.ssh/config中配置端口转发的简写,减少输入的复杂性。
Host remote
# 定义一个主机别名为 "remote",可以用来简化 SSH 命令。
# 这个别名可以在后续的 SSH 命令中使用,如 `ssh remote`。
HostName remote_host
# 指定实际的远程主机名或IP地址。
# 在使用这个别名(remote)时,SSH 将连接到这个指定的主机。
User user
# 指定用于SSH连接的用户名。
# 当连接到远程主机时,将以这个用户的身份进行登录。
LocalForward 8080 localhost:80
# 设置本地端口转发。
# 将本地计算机的8080端口的流量转发到远程主机的localhost上的80端口。
# 例如,当你在本地浏览器中访问 `http://localhost:8080` 时,实际访问的是远程主机的Web服务(HTTP服务)。
RemoteForward 9090 localhost:3000
# 设置远程端口转发。
# 将远程主机的9090端口的流量转发到本地计算机的3000端口。
# 当远程主机访问 `http://localhost:9090` 时,实际上会访问本地计算机的服务。
DynamicForward 1080
# 设置动态端口转发,创建一个SOCKS代理。
# 本地计算机的1080端口会作为SOCKS代理使用,所有流量都会通过SSH隧道转发。
# 这样可以将应用程序(如浏览器)配置为使用这个SOCKS代理,实现通过SSH的安全访问。
复制代码
通过这种方式,可以用 ssh remote 来启动全部配置的端口转发。
注意事项
确保SSH服务器配置文件(/etc/ssh/sshd_config)中答应端口转发(AllowTcpForwarding yes)。
在使用端口转发时,注意防火墙设置,确保相关端口开放,以免影响访问。
使用动态端口转发时,确保你的应用程序支持SOCKS署理功能。
SSH文件传输紧张通过两种工具实现:SCP(Secure Copy Protocol)和SFTP(Secure File Transfer Protocol)。这两种工具都利用SSH协议提供安全的文件传输功能。以下是它们的具体介绍及用法。
文件传输
使用SCP进行文件传输
SCP 是一种简单的文件传输工具,紧张用于快速安全地复制文件和目录。其根本命令格式如下:
scp [选项] [源文件] [目标]
复制代码
-r
:递归复制整个目录,适合传输文件夹及其内容。
-P [端标语]
:指定SSH连接使用的端口(注意大写P),用于访问非默认端口的SSH服务。
-i [私钥文件]
:指定使用的SSH私钥文件,适合密钥认证的场景。
-v
:具体模式,显示传输过程的信息,便于调试和确认传输状态。
示例:
从本地复制文件到远程主机
:
scp /path/to/local/file user@remote_host:/path/to/remote/directory
复制代码
这个命令将指定的本地文件上传到远程主机的指定目录。
从远程主机复制文件到本地
:
scp user@remote_host:/path/to/remote/file /path/to/local/directory
复制代码
通过这个命令,你可以将远程主机上的文件下载到本地。
递归复制目录
:
scp -r /path/to/local/directory user@remote_host:/path/to/remote/directory
复制代码
这将整个本地目录及其内容上传到远程主机。
指定端口
:
scp -P 2222 /path/to/local/file user@remote_host:/path/to/remote/directory
复制代码
这个命令答应你通过指定端口连接SSH服务,进行文件传输。
使用SFTP进行文件传输
SFTP 是一种交互式文件传输协议,提供比SCP更丰富的功能,如文件管理、目录浏览等。其根本命令格式如下:
sftp [选项] [user@remote_host]
复制代码
在SFTP交互模式下,可以使用以下命令:
ls
:列出远程目录中的文件,方便查看可用文件。
cd [目录名]
:切换到远程目录,帮助在不同目录之间导航。
lcd [目录名]
:切换到本地目录,便于选择上传或下载的目标。
put [本地文件]
:上传本地文件到远程主机,快速分享数据。
get [远程文件]
:下载远程文件到本地,轻松获取所需资料。
mput [本地文件1] [本地文件2]
:批量上传多个文件,节省时间和精力。
mget [远程文件1] [远程文件2]
:批量下载多个文件,便于大规模数据传输。
exit
:退出SFTP会话,竣事当前操纵。
示例:
启动SFTP会话
:
sftp user@remote_host
复制代码
这将创建与远程主机的SFTP连接。
上传文件
:
put /path/to/local/file
复制代码
上传指定的本地文件到当前远程目录。
下载文件
:
get /path/to/remote/file
复制代码
下载指定的远程文件到当前本地目录。
切换目录
:
cd /path/to/remote/directory
lcd /path/to/local/directory
复制代码
通过这些命令,可以轻松在远程和本地目录之间切换。
列出文件
:
ls
复制代码
查看当前远程目录中的文件,确认文件的存在与状态。
常用SSH命令参数
参数功能描述示例-L [本地端口]:[目标主机]:[目标端口]设置本地端口转发。ssh -L 8080:localhost:80 user@remote_host-R [远程端口]:[目标主机]:[目标端口]设置远程端口转发。ssh -R 9090:localhost:3000 user@remote_host-D [本地端口]设置动态端口转发,创建SOCKS署理。ssh -D 1080 user@remote_host
-p [端标语]指定SSH连接的端口(默认为22)。ssh -p 2222 user@remote_host-v启用具体模式,显示调试信息,便于排查连接问题。ssh -v user@remote_host-C启用压缩,适用于慢速连接,大概会进步性能。ssh -C user@remote_host-i [私钥文件]指定使用的SSH私钥文件。ssh -i ~/.ssh/id_rsa user@remote_host-N不执行远程命令,仅用于端口转发。ssh -L 8080:localhost:80 -N user@remote_host-f在后台运行SSH会话,通常与-N联合使用。ssh -f -L 8080:localhost:80 -N user@remote_host-o [选项]可以传递特定的SSH配置选项。ssh -o StrictHostKeyChecking=no user@remote_host
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
风雨同行
金牌会员
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
超融合和传统 “VMware + FC SAN& ...
四、MySQL之数据查询语言(二) ...
转载自ChatGPT:Python关键字 asynico ...
损失函数-pytorch
ClickHouse(02)ClickHouse架构设计介绍 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
备份
快速回复
返回顶部
返回列表