SSH(Secure Shell)是一种建立在应用层上的安全网络协议,用于在不安全的网络中安全地传输数据。它提供了加密和认证机制,使得网络连接变得安全可靠。
这里使用一台 雨云 的云服务器作为演示。雨云注册地址:https://www.rainyun.com/
优惠码:lz932
使用优惠码注册后绑定微信可获得8折优惠券
注册完账号后进到雨云控制台,云服务器入口可以在后台的 总览 和 云产品 部分找到:
点击购买云服务器,接着选择服务器区域,建议选择内地机房,因为延迟低网络稳定,比如宿迁和十堰,其中推荐十堰,因为IP便宜,如果预算充足选择宿迁更好。
作为演示我们这里使用1H1G服务器
0x00 本地安装 SSH
apt install openssh-client openssh-server
0x01 本地连接远程服务器
你可以使用你喜欢的SSH工具连接到服务器,也可以使用雨云后台管理的VNC连接。
ssh user@host -p port
命令行的额外参数
-f
后台运行-q
静默模式-n
无标准输入-C
压缩数据-T
禁远程分配终端-N
不执行远程命令-X
图形界面
0x02 配置密钥
# 按照算法生成公钥/私钥 -> ~/.ssh/id_xxx.pub ~/.ssh/id_xxx
ssh-keygen -t dsa|ecdsa|ecdsa-sk|ed25519|ed25519-sk|rsa -f file -C "comment注释"
# 查看hostname的密钥
ssh-keygen -F [host]:port
# 删除hostname的密钥
ssh-keygen -R [host]:port
0x03 免密登录
这一步可以实现免密登录:
## linux/mac
ssh-copy-id user@host -p port
0x04 配置别名
# ~/.ssh/config
Host 别名
HostName IP地址
User 用户名
Port 端口
0x05 本地和服务器间传文件(夹)
scp {本机地址/远程地址} {本机地址/远程地址}
-r
传送文件夹-P
指定端口- 远程地址在前面加
user@host:
0x06 代理
正向 -L
(本机端口到远程端口)
# hp520:port1 -> host2:port2
hp520> ssh -L host1:port1:host2:port2 user2@host2
# hp520:port0 -> hp520:port1 -> host2:port2
hp520> ssh -L host0:port0:host2:port2 user1@host1
反向 -R
(远程端口到本机端口)
# /etc/ssh/sshd_config
GatewayPorts yes
然后执行:
hp520> ssh -R host1:port1:host2:port2 user1@host1
Socks5
通过 socks5 协议将内容托管给另一台机器
hp520> ssh -D hp520:7899 host1