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
相关推荐
aramae29 分钟前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
bessyon31 分钟前
信息透明度与决策效率:一个技术视角的分析
笔记
hanlin032 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
自不量力的A同学2 小时前
开源一站式智能终端 uniTerm v1.9.4 发布
笔记
91刘仁德3 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
库玛西4 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研
Rabitebla6 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
库玛西6 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
小李不想当小白7 小时前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb
hanlin038 小时前
刷题笔记:力扣第76题-最小覆盖子串
笔记·算法·leetcode