SSH 免密登录

Linux

  1. 生成公钥私钥
ssh-keygen
  1. 复制公钥到服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.150.148

非roor用户可能会报错:参考 login - Unable to use ssh-copy-id - mktemp: failed to create file via template - Unix & Linux Stack Exchange

或者直接修改 /root/.ssh/authorized_keys 文件, 将 id_rsa.pub 文件内容手动复制到 authorized_keys

  1. 测试登录
ssh root@192.168.150.148 -p 22

Windows

  1. 生成公钥私钥
ssh-keygen
  1. 复制公钥到服务器
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@192.168.150.148 "cat >> .ssh/authorized_keys"

或者直接修改 /root/.ssh/authorized_keys 文件, 将 id_rsa.pub 文件内容手动复制到 authorized_keys

  1. 测试登录
ssh root@192.168.150.148 -p 22

SSH 配置代理

场景:使用 ssh 连接国外服务器时,配置 ssh 走代理

使用 nmap 配置 ssh 代理

nmap:https://nmap.org/download.html#windows

配置文件 .ssh/config

Host koko
  HostName 10.10.10.10 // 服务器公网 IP
  User koko
  Port 22
  IdentityFile "C:\Users\29434\.ssh\id_rsa"    // 免密
  ProxyCommand "D:\nmap\ncat" --proxy-type socks5 --proxy 127.0.0.1:7890 %h %p // 代理

保持会话

客户端配置

添加配置文件 .ssh/config

Host *
  ServerAliveInterval 20
  TCPKeepAlive no
  • Host:指定配置适用于哪些主机,* 表示所有主机
  • ServerAliveInterval:多久未收到服务器数据后发送保活消息(秒)。默认 0,表示不发送
  • ServerAliveCountMax:在无响应情况下最多发送多少次保活消息,超过则断开连接。默认 3

服务端配置

修改配置文件:/etc/ssh/sshd_config

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 30
  • TCPKeepAlive:是否向客户端发送 TCP keepalive 消息。
  • ClientAliveInterval:SSH 服务器多长时间无客户端数据后发送保活消息,默认 0,表示不发送
  • ClientAliveCountMax:SSH 服务器在未收到响应时最多发送多少次保活消息,超过则断开连接

参考


koko
1 声望0 粉丝

« 上一篇
tmux notes