最近升级了 windows 11,与网上的评价不同,个人感受还不错(或许是体验的还不够深入?)

Windows 11 中支持使用 Windows Terminal 作为默认的 terminal,大赞!!

这篇文章是主要说说 「如何使用 windows 自带的 SSH 连接服务器」(大概可以扔掉 SSH 客户端了~~)

打开 powershell,输入 ssh 通常就能看到下面的输出:

PS C:\Users\Administrator> ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]
PS C:\Users\Administrator>

这就说明电脑自带 SSH,命令,格式与 linux 上的 ssh 一模一样

常用操作

下面记录一下常用操作

生成公钥和私钥

使用下面的命令会在 用户文件夹下创建属于本机的 公钥和私钥

ssh-keygen -t rsa

生成的 公钥和私钥 会保存在 用户目录的 .ssh 目录下:比如此处的 C:\Users\Administrator\.ssh

你会得到:

id_rsa.pub # 公钥文件
id_rsa # 密钥文件

但有些软件对这样格式的密钥兼容性较差(比如说 rdm),我们可以转换一下

ssh-keygen -p -m pem -f ~/.ssh/id_rsa

ssh 配置文件

下面贴出一份完整的配置文件(在 .ssh 目录下编写配置文件 config

##
# 通用配置
##
Host *
    # 心跳发送间隔,用于维持长连接不主动关闭
    ServerAliveInterval 20
    # 心跳失败重试次数
    ServerAliveCountMax 10

##
# 配置1,此处的 xx 可以更换为你习惯的名字
##
Host xx
    # 主机 ip
    HostName x.x.x.x
    # 主机端口
    Port 22
    # 连接用户
    User root

##
# 配置2,使用代理连接
##
Host xx2
    # 主机 ip
    HostName x.x.x.x
    # 主机端口
    Port 22
    # 连接用户
    User root
    # 配置的本机代理,如果要使用代理,需要安装 nmap 工具
    ProxyCommand ncat --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p

使用配置

使用以上内容就很简单了

ssh xx2 

这样就通过 ssh 连上 xx2 这台机器了

美中不足

  1. 无法记录密码(如果想免密码就使用密钥登录)
  2. 查看主机列表和对应 ip 不方便(如果有更好的办法请告诉我!)

Q.E.D.


此 生 无 悔 恋 真 白 ,来 世 愿 入 樱 花 庄 。