最新回复 (
2 )
FTP 在内网中使用没啥问题,但在公网中使用…… *赛博裸奔.MP4*。使用 SFTP / SCP 可有效规避此类问题。
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络环境中安全地连接到远程计算机或服务器。
SSH 的主要特点包括:
1. 加密通信:SSH 使用强加密算法来保护数据传输,确保信息在传输过程中不被窃听或篡改。
2. 身份验证:SSH 支持多种身份验证方式,确保只有授权用户才能访问远程系统。
3. 数据完整性:SSH 会检查数据在传输过程中是否被篡改,确保数据的完整性。
4. 多功能性:除了远程登录,SSH 还支持端口转发(内网穿透)、文件传输(通过 SCP 或 SFTP)、远程命令执行等功能。
注意:若 PC 中存在诸如 Windows Update Blocker(WUB) 等阻止 Windows 更新的软件,请临时将其关闭。
Windows 默认安装有 OpenSSH 客户端,但 OpenSSH 服务器通常需手动安装。
在 Windows 10 中,打开“设置”,在搜索栏中输入“可选功能”,点击“管理可选功能”,点击“添加功能”,勾选“OpenSSH 服务器”并点击“安装”,耐心等待进度条达到 100%。
安装完毕后,打开 CMD 或 Windows Powershell,输入`ssh -V`并回车,若显示有 OpenSSH 的版本号,则说明安装成功。
Windows 11 中的操作步骤与其类似。
提示:可使用 Cygwin、MobaXterm 等作为替代方案。
右键“此电脑”,点击“管理”,在“服务和应用程序 -> 服务”中,找到“OpenSSH Authentication Agent”和“OpenSSH SSH Server”,然后分别对这两项服务进行以下操作:
在 Windows Powershell 中,输入`Get-Service -Name *ssh*`并回车,若显示有`ssh-agent`和`sshd`且其`Status`均为`Running`,则说明服务启动成功。
接着输入`netstat -an | findstr :22`并回车,若显示有`TCP 0.0.0.0:22 0.0.0.0:0 LISTENING`和`TCP [::]:22 [::]:0 LISTENING`,则说明 OpenSSH 服务器正在监听 22 端口(SSH 默认端口)。
虽说到这一步后即可使用 SSH 连接 PC,但使用密码登录的 SSH 并不安全。
在 Windows Powershell 中,输入以下其中一条命令生成密钥对:
在生成密钥对时,在“Enter file in which to save the key”这一行中,输入`文件夹路径\文件名(不带后缀)`后回车,若直接回车则将以`默认文件夹路径\id_xxx`的方式生成密钥对。以下是两种示例写法:
注意:若路径中含有空格,请使用半角双引号("")将路径括起来。
在“Enter passphrase (empty for no passphrase)”这一行中,输入随机字符串后回车将为私钥设置一个 passphrase(密码),此后使用此私钥建立 SSH 连接前需要输入 passphrase。若直接回车则不会为私钥设置 passphrase。passphrase 的主要作用在于若客户端被入侵或私钥泄露,攻击者在不知道 passphrase 的情况下也无法通过此私钥访问对应服务端。
在“Enter same passphrase again”这一行中,输入先前设置的 passphrase,若未设置则直接回车。
密钥对生成完毕后,将不带`.pub`后缀的私钥文件发送到客户端。随后使用记事本打开后缀为`.pub`的公钥文件,复制其中的字符串。然后前往此文件夹:“C:\Users\*用户名*\.ssh”,新建文本文档并命名为“authorized_keys”(不带后缀),使用记事本打开此文件并将先前复制的字符串粘贴进去,随后保存。
接着前往此文件夹:“C:\ProgramData\ssh”,使用记事本打开文件“sshd_config”(注意:请以管理员身份打开),取消以下内容的注释(删除“#”号):
并注释掉以下内容(在开头添加“#”号):
随后保存。
右键“此电脑”,点击“管理”,在“服务和应用程序 -> 服务”中,找到“OpenSSH SSH Server”,右键此服务并点击“重新启动”。
在 CMD 中,输入`ssh -i "私钥文件路径" username@ip(或域名)`并回车。首次连接时会弹出提示,此时先输入“yes”并回车,然后使用记事本打开此文件:“C:\Users\*用户名*\.ssh\known_hosts”,将其中的字符串与服务端中的公钥文件“C:\ProgramData\ssh\ssh_host_xxx_key.pub”(xxx 为此次连接使用的密钥加密算法)当中的字符串逐一比对(注意忽略“=”号后面的注释),若核对无误,则说明未遭遇中间人攻击,此次与后续的连接均可信。
输入`exit`并回车即可断开连接。
注意:在 Windows 中,微软账户用户名通常为邮箱,此时请使用半角双引号("")将用户名括起来以免用户名中的“@”与命令中的“@”混淆。
每次连接服务端前都需要输入私钥文件路径略显麻烦,尤其是有多个 SSH 服务端时。其中一个解决办法为将 SSH 连接命令存储在`.bat`文件中以实现批量管理 SSH 连接。
新建文本文档并将后缀改为“.bat”,然后使用记事本打开此文件,输入`ssh -i "私钥文件路径" username@ip(或域名)`并保存。此后仅需双击打开此文件即可连接服务端。
CMD / Windows Powershell 主要用于远程命令执行。对于文件传输,可使用 WinSCP。
WinSCP 官网:https://winscp.net/eng/docs/lang:chs。
打开 WinSCP,在“登录”页面中,“主机名”填写服务端 IP 或域名,“端口号”若未特别设置过则填写 22,“用户名”填写服务端的微软账户用户名或本地账户用户名,“密码”留空。
然后点击“高级...”,在“SSH -> 验证 -> 密钥文件”中,点击右侧的三个点,选择私钥文件并点击“打开”(若找不到私钥文件,尝试将右下角的筛选条件由“PuTTY私钥文件(*.ppk)”改为“所有文件(*.*)”)。若私钥文件由 OpenSSH 生成,WinSCP 会提示需要将 OpenSSH 私钥转化为 PuTTY 格式,点击“确定”,将转换后的私钥文件保存,WinSCP 会自动识别此私钥文件的路径。随后点击“确定”退出高级站点设置。
接着点击“保存”,输入站点名称和文件夹名称并点击“确定”,即可保存站点配置。此后连接服务端时无需再输入主机名、用户名等。
最后点击“登录”。首次连接时会弹出警告,此时先将服务端中的公钥文件“C:\ProgramData\ssh\ssh_host_xxx_key.pub”(xxx 为此次连接使用的密钥加密算法)复制到客户端,在客户端中复制其中的字符串到剪贴板。然后在 WinSCP 的警告页面中,点击“接受”旁的箭头,点击“粘贴密钥”。
若显示内容不匹配,则说明可能遭遇中间人攻击、字符串复制错误或复制公钥文件时文件损坏等;若显示网络错误,点击“重新连接”即可正常连接。
连接成功后,可像使用文件资源管理器一样自由管理文件。
在 App Store 中,搜索“Termius”,找到“Termius: Terminal & SSH Client”并下载安装。
在 Termius 中,点击右上角“+”号,点击“New Host”。“Label”填写站点名称,“IP or Hostname”填写服务端 IP 地址或域名,启用“Use SSH”选项,Port 若未特别设置过则填写 22, “Username”填写服务端的微软账户用户名或本地账户用户名,“Password”留空。
点击“Key”,点击右上角“+”号,点击“Import Key”,选择存储在本地的私钥文件并打开,点击“Save”。选择导入的 Key,随后点击“Save”。
点击 Hosts 中的站点图标以连接。首次连接时会弹出警告,此时先点击“Continue”,然后点击左上角退出连接页面,在“Known Hosts”中点击对应的站点图标,将“Host Information”中的字符串与服务端中的公钥文件“C:\ProgramData\ssh\ssh_host_xxx_key.pub”(xxx 为此次连接使用的密钥加密算法)当中的字符串逐一比对(注意忽略“=”号后面的注释),若核对无误,则说明未遭遇中间人攻击,此次与后续的连接均可信。
输入`exit`并回车或点击页面正上方的叉号即可断开连接。
Termius 亦支持 SFTP 文件传输。
JuiceSSH 官网 APK 下载页面:https://juicessh.com/changelog。
在 JuiceSSH 中,点击“Manage Connections”,点击右下角“+”号。“名称”填写站点名称,“类型”选择 SSH,“主机”填写服务端 IP 地址或域名,“端口/连接埠”若未特别设置过则填写 22。
在“身份”中,点击“新增...”。“使用者名称”填写服务端的微软账户用户名或本地账户用户名,“密码”无视,点击“私钥”并导入存储在本地的私钥文件,随后点击右上角的勾以新增身份。
点击右上角的勾以新增连接,随后点击站点图标以连接服务端。首次连接时会弹出警告,由于 JuiceSSH 无法查看 Known Host,请自行确认公钥指纹后点击“接受”或“拒绝”。
输入`exit`并回车即可断开连接。
Termius APK 下载:
操作步骤与章节 2.2.1 类似。