SSH笔记

SSH笔记

记录一些ssh连接用到的命令

SSH连接远程服务器

bash 复制代码
# 直接连接
ssh user@ip

# 特定端口连接
ssh -P 12345 user@ip

创建本机SSH密钥

生成新的密钥

bash 复制代码
rm -r ~/.ssh
ssh-keygen -t rsa

然后全部选择回车

查看生成好的密钥

bash 复制代码
cat ~/.ssh/id_rsa.pub

拉取或推送远程文件

bash 复制代码
# 拉取
scp -r user@ip:/远程文件绝对路径 /本地文件绝对路径

# 推送
scp -r /本地文件绝对路径 user@ip:/远程文件绝对路径

将本地端口基于SSH映射到远程服务器

仅转发端口信息,不进入远程ssh终端

bash 复制代码
# 非后台运行
ssh -D 10080 -N -C user@ip

# 后台运行
ssh -D 10080 -N -f -C user@ip

查看是否在运行

bash 复制代码
ps aux | grep ssh

杀死后台运行

bash 复制代码
pkill -f "ssh -D 10080"

SSH免密连接

首先生成本地的SSH密钥

然后推送到云服务器:

bash 复制代码
ssh-copy-id user@ip

SSH自动重连

安装autossh:

bash 复制代码
sudo apt install autossh

自动重连的连接:

bash 复制代码
autossh -M 0 -D 10080 -N -C -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" user@ip

参数解读:
-o ServerAliveInterval=30: 每 30 秒向服务器发送一次心跳包,防止因空闲被切断
-o ServerAliveCountMax=3: 如果连续 3 次心跳无响应,则认定连接已断开并退出

将其设置为开机自启动

新建服务配置文件

bash 复制代码
sudo vim /etc/systemd/system/ssh_autotool.service

写入内容:

bash 复制代码
[Unit]
Description=ssh_autotool
After=network-online.target
# 强制要求网络就绪后再启动
Requires=network-online.target
# 可选:如果用NetworkManager管理网络,添加这个依赖
After=NetworkManager.service

[Service]
User=建立ssh连接的用户名
Environment="AUTOSSH_GATETIME=0"
ExecStartPre=/bin/sleep 5
ExecStart=/usr/bin/autossh -M 0 -D 10080 -N -C -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" user@ip
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

启动配置:

bash 复制代码
systemctl daemon-reload
systemctl enable ssh_autotool.service
systemctl start ssh_autotool.service
相关推荐
南宫萧幕1 分钟前
计算机四级网络工程师:操作系统原理与计算机网络 · 综合知识点笔记
网络·笔记·计算机网络
weixin_4660681113 分钟前
《十分钟冥想》精读笔记(下):把正念活成生活方式,附全书10个练习索引
笔记·生活
库玛西2 小时前
深入浅出传输层:UDP 与 TCP 协议全景指南
linux·服务器·网络·c++·笔记·tcp/ip·udp
知产xiao_xin9 小时前
知识产权入门 —— 相关权(邻接权)
经验分享·笔记·知识产权
自小吃多9 小时前
DXF文件导入与PCB板框定义笔记
笔记·嵌入式硬件
jike_202611 小时前
iPhone采访录音同时拍现场照片的APP:图片音频同步记录实测
笔记·智能手机·音视频·语音识别
————A12 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
奔跑的痕迹12 小时前
如何删除引力画报?
笔记
zbyyd13 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
知产xiao_xin13 小时前
知识产权入门 —— 版权
经验分享·笔记·知识产权