linux系统学习——关于SSH

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地传输数据。它通常用于远程管理和远程访问计算机系统。

关键特点和用途:

  • 加密通信:使用加密算法对数据进行加密,使得黑客难以窃取敏感信息
  • 远程登录:允许用户从远程位置登录到目标计算机系统,可以通过命令行界面或图形界面进行操作
  • 远程文件传输:用户可以安全地传输文件和目录,常用的工具有 SCP(Secure Copy)和 SFTP(SSH File Transfer Protocol)
  • 端口转发:可以设置端口转发,用于在安全的通道中传输其他网络服务,如数据库连接或 Web 浏览器访问
  • 隧道技术:SSH 可以创建加密隧道,安全地传输其他协议的流量,如 VPN

使用SSH的步骤

安装SSH

1.安装OpenSSH服务器

sudo apt update sudo apt install openssh-server

2.启动和启用SSH 服务

sudo systemctl start ssh sudo systemctl enable ssh

3.检查 SSH 服务状态

sudo systemctl status ssh

使用SSH客户端连接远程服务器

1.安装 SSH 客户端

sudo apt install openssh-client

2.连接到远程服务器

ssh 用户名@ip地址

3.指定端口 如果远程服务器的 SSH 服务运行在非默认端口(默认端口是 22),可以使用 -p 参数指定端口。

ssh -p 2222 用户名@ip地址

常用的SSH命令

1.复制文件到远程服务器

scp /home/user/file.txt 用户名@ip地址:/home/user/

2.从远程服务器复制文件

scp 用户名@ip地址:/home/user/file.txt /home/localuser/

3.进行文件同步,比如将本地目录同步到远程主机目录

rsync -avz /path/to/local/directory 用户名@ip地址:/path/to/remote/directory

4.使用 nohup 命令在后台运行命令,即使断开 SSH 连接也不会中断:

nohup command &

5.远程执行命令

ssh 用户名@ip地址 'command'   #使用 ssh 命令远程执行命令,并获取返回结果

ssh 用户名@ip地址 'sudo command'  #使用 sudo在远程主机以管理员权限执行命令

6.使用 vim 或 nano 等文本编辑器远程编辑文件

ssh 用户名@ip地址 'vim /path/to/remote/file'

7.使用 SSH 进行端口转发,可以将本地端口转发到远程主机的指定端口

ssh -L 本地端口:远程ip:远程端口 用户名@ip地址

端口转发的应用场景:

  • 访问远程数据库

如果远程数据库服务器不允许直接从你的本地网络访问,但允许从中间的 SSH 服务器访问,你可以使用端口转发将本地数据库客户端连接到远程数据库。

ssh -L 5432:database.example.com:5432 user@ssh.example.com

  • 安全浏览内网网页

有时候需要访问只在远程内网可见的网页服务,可以使用端口转发来实现。

ssh -L 8080:intranet.example.com:80 user@ssh.example.com

这样,可以在本地通过 http://localhost:8080 访问远程内网网站 http://intranet.example.com

  • 远程调试

开发和调试应用程序时,可以将本地调试端口转发到远程服务器上。例如,你的应用程序在远程服务器上运行,你可以将本地调试端口转发到远程应用程序的调试端口:

ssh -L 5005:localhost:5005 user@remote.example.com

这样,你可以在本地通过 localhost:5005 连接远程应用程序的调试器

  • 绕过防火墙和网络限制

如果你在受限制的网络环境中,而你需要访问外部的服务,可以通过中间的 SSH 服务器进行端口转发。

ssh -L 8888:target.example.com:80 user@bastion.example.com

这样,你可以在本地通过 localhost:8888 访问外部的 target.example.com:80 服务。

  • 安全传输数据

通过 SSH 进行端口转发,所有的数据传输都是加密的,确保了数据的安全性。

8.使用 SFTP 进行文件传输

sftp 用户名@ip地址

连接后可以使用类似于 FTP 的命令,如 get、put、ls 等。

9.可以使用 SSH 密钥对进行认证 使用 ssh-keygen 生成密钥对 避免每次输入密码

ssh-keygen        # 生成 SSH 密钥对 
ssh-copy-id username@remote_host       # 将公钥复制到远程主机上

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值