关于 ssh 应用,你知道多少?
文章目录
ssh 密钥其实我们并不陌生,无论是使用 Github 还是 gitlab 这种使用 git 管理项目的平台,都会可能使用 ssh 协议传输资料。
数字签名是什么? 🌟🌟🌟
利用 ssh 的用户配置文件 config 管理 ssh 会话
How to use ssh-keygen to generate a new SSH key 🌟🌟🌟🌟🌟
SSH原理与运用(一):远程登录🌟🌟🌟🌟🌟
一些概念
SSH 和 Telnet 都是网络协议,用于远程访问设备
什么是 ssh 协议?
Secure Shell 协议应用于在不安全的网络上安全的操作网络服务。它广泛的应用于远程登录会话、SSO 或其他。
什么是 telnet 协议?
Telnet 是 teletype network 的缩写,表示远程登录协议和方式,分为 telnet 客户端和服务器程序。telnet 协议和 http 协议一样也是应用层协议的一员。
两者有什么区别?
- 安全性:Telnet 使用明文传输,数据容易被窃听和篡改,而 SSH 利用加密技术,可以有效防止数据被窃听和篡改。
- 可靠性:Telnet 协议并不具备数据校验的功能,易出现数据传输错误,而 SSH 对传输数据进行完整性检验,确保数据的可靠性。
- 认证机制:Telnet 需要在服务器端设置用户账号和密码才能登录,而 SSH 的登录过程是使用公钥和私钥进行加密传输,更加安全可靠。
- 功能扩展:Telnet 比较简单,功能有限,而 SSH 协议支持在加密信道中传输其它协议,如 FTP、SMTP等,支持众多的远程管理和文件传输工具。
综上所述,SSH 是一种更加安全可靠的远程访问协议,应优先选择使用。
ssh 远程登录
.ssh/config 做什么用的?
SSH config 是 Linux 系统下针对 SSH 客户端的一个参数配置方案,可以将一些关于 SSH 命令的参数放到配置文件中去,比如给一些远程主机起别名,执行 SSH 命令的时候从文件中读取,直接用 ssh test
即可登录到远程主机
远程登录主机怎么做?
- ssh-keygen 生成本机的公钥和私钥
- ssh-copy-id [-i [identity_file]] [user@]host 将本机的公钥 copy 到远程主机的 authorized_keys 文件中
- 此时 ssh user@host 可以直接登录主机
什么原理?
others
# 查看本机授权了哪些机器(公钥)可以来远程访问本机
cat ~/.ssh/authorized_keys
# 管理 ssh 对话,比如起别名等
vim ~/.ssh/config
ssh 远程操作与端口转发
端口转发
- 本地端口转发
场景:
假定 host1 是本地主机,host2 是远程主机。由于种种原因,这两台主机之间无法连通。但是,另外还有一台host3,可以同时连通前面两台主机。因此,很自然的想法就是,通过 host3,将 host1 连上 host2。
我们在 host1 执行下面的命令:
SSH -L 8081:host2:8888 host3
命令中的 L 参数一共接受三个值,分别是"本地端口:目标主机:目标主机端口",它们之间用冒号分隔。这条命令的意思,就是指定 SSH 绑定本地端口 8081,然后指定 host3 将所有的数据,转发到目标主机 host2 的 8888 端口, 这样我们使用本地端口 8081的时候就等于连接上了 host2:8888 端口。
“本地端口转发"使得 host1 和 host3 之间仿佛形成一个数据传输的秘密隧道,因此又被称为"SSH隧道”。
Telnet 使用场景
- 测试网络服务
Telnet 可以用于测试网络服务,如 HTTP 服务器和 SMTP 服务器。
# 能访问通的时候会显示 connected to xx
telnet host port