Win使用SSH

发布于:2024-09-18 ⋅ 阅读:(8) ⋅ 点赞:(0)

前言

以前一直用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/ 传输文件

未完待续…


网站公告

今日签到

点亮在社区的每一天
去签到