前言
以前一直用xshell 但是由于很奇怪的原因就需要经常更新
本来我的服务器需要连接的设备也不是很多 也就开始测试几台而已
ssh 连接
ssh username@192.168.0.106
如果经常没有使用 就会断开 提示 client_loop: send disconnect: Connection reset
解决办法如下
- 在客户端配置保持活动的信号:
编辑你的 ~/.ssh/config 文件(如果没有此文件,手动创建),添加以下内容:
Host *
ServerAliveInterval 60
这将每隔 60 秒发送一个保持活动的信号,防止服务器断开连接。
- 在服务器端检查配置:
检查 /etc/ssh/sshd_config 文件,确认以下参数设置:
ClientAliveInterval 60
ClientAliveCountMax 3
这意味着服务器会在 60 秒后检查客户端是否仍然活跃,如果连续 3 次没有响应,将断开连接。
scp 传输文件
# 上传本地文件到服务器
scp /path/to/local/file username@192.168.0.106:/path/to/remote/directory/
# 从服务器下载文件到本地
scp username@192.168.0.106:/path/to/remote/file /path/to/local/directory/
免密登录
每次登录都需要密码 如果密码很复杂记不住 就需要配置这个咯
生成 SSH 密钥对
- 打开 PowerShell 或命令提示符:
按Win + X
,选择 Windows PowerShell 或 命令提示符。 - 生成密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa 指定使用 RSA 算法。 -b 4096 指定密钥长度为 4096 位。 -C 添加注释(例如您的邮箱)。
- 保存密钥:
系统会提示您选择保存位置,默认位置通常是 C:\Users\您的用户名.ssh\id_rsa。按回车键确认。
将公钥复制到 Linux 服务器
- 打开这个文件
\.ssh\id_rsa.pub
复制所有内容 - 使用 SSH 登录到您的 Linux 服务器:
ssh username@linux_server_ip
- 创建 .ssh 目录(如果尚不存在):
mkdir -p ~/.ssh
- 打开或创建 authorized_keys 文件:
nano ~/.ssh/authorized_keys
测试 SSH 无密码登录
在 Windows 上,执行以下命令测试:
ssh username@linux_server_ip
如果一切设置正确,您应该能够无需输入密码直接登录到 Linux 服务器。
(可选)禁用密码登录以提高安全性
为了进一步增强安全性,您可以在 Linux 服务器上禁用密码登录,只允许基于密钥的认证。
- 编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
- 修改或添加以下行:
PasswordAuthentication no
保存退出 - 重启 SSH 服务:
sudo systemctl restart sshd
注意:确保您已经能够通过密钥登录后,再禁用密码认证,以免被锁定。
在 Linux 服务器上,~/.ssh 目录应设置为 700 权限,authorized_keys 文件应设置为 600 权限。
名称连接
如果你已经在config 配置好了 对应的host 如下
Host virtual
HostName 192.168.0.106
User lemon
你就可以直接通过
ssh virtual
直接登录scp C:\path\to\local\file.txt virtual:/path/to/remote/directory/
传输文件
未完待续…