SH,全称为Secure Shell,是建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。通过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。SSH 之另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度。
SSH主要由三部分组成:传输层协议、用户认证协议和连接协议。其提供了基于密码和基于密钥的两种用户验证方式,并支持SSH连接方式的端口转发功能,同时也可以利用此功能在本地与远程主机之间建立安全的加密连接,通过在本地开启安全的SOCKS4/SOCKS5代理服务器,让本地主机通过远程主机访问外部资源。
SSH的加密方式也非常强大,它是基于密钥的,包括公钥(public key)和私钥(private key)。当数据发送方使用公钥对数据加密后,只有拥有对应私钥的用户才能解密这段数据。同时,SSH的数据传输过程是加密的,可以有效防止在传输过程中被截取破解。
总的来说,SSH是一种非常安全的远程登录协议,广泛应用于服务器管理、远程文件传输等场景。
SSH的常用命令包括以下几类:
1. 免密登录相关:
ssh-keygen:生成SSH密钥对。
ssh-copy-id user@host:将公钥复制到目标主机,以实现免密码SSH登录。
2. 远程登录与连接:
ssh username@hostname:使用用户名和密码连接到远程主机。
ssh -p port_number username@hostname:指定非默认端口号连接到远程主机。
ssh -i private_key_file username@hostname:使用指定的私钥文件进行身份验证并连接到远程主机。
3. 隧道与端口转发:
ssh -L local_port:remote_host:remote_port username@hostname:将本地端口转发到远程主机上的指定端口。
ssh -R remote_port:local_host:local_port username@hostname:将远程主机的端口转发到本地主机上的指定端口(反向隧道)。
4. 执行命令与退出:
ssh username@hostname “command”:在远程主机上执行单个命令。
exit:退出SSH连接。
5. 文件传输:
scp file_name username@hostname:/remote/directory:将本地文件复制到远程主机。
scp username@hostname:/remote/file_path local_path:从远程主机复制文件到本地。
6. 其他高级用法:
ssh -t reachable_host ssh unreachable_host:通过中间主机建立SSH连接。
ssh -MNf @:在后台创建到目标主机的持久化连接。
请注意,使用SSH命令时,确保你已经了解了命令的功能和可能带来的风险,并始终在安全的网络环境中操作。同时,根据你的具体需求和系统配置,可能还需要查阅更详细的SSH文档或手册以获取更多信息和指导。