自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從 Windows 上用 SSH 連接到 Linux

系統(tǒng) Linux 開(kāi)源
使用開(kāi)源的 PuTTY 工具,從 Windows 建立到 Linux 的 SSH 連接。

在 Linux 世界中,安全外殼secure shell(SSH)協(xié)議是最為常用的、通過(guò)命令行控制遠(yuǎn)程計(jì)算機(jī)的方式。SSH 是真正的 Linux 原創(chuàng),但是它在 Windows 世界中也越來(lái)越流行。甚至有了一份官方的 ??Windows 的 SSH 文檔???,那篇文檔闡述了使用 ??OpenSSH?? 控制 Windows 的方法。

這篇文章展示了如何使用了流行的開(kāi)源工具 ??PuTTY??,建立一個(gè)從 Windows 到 Fedora 33 Linux 系統(tǒng)的 SSH 連接。

使用 SSH 的方法

SSH 使用客戶端-服務(wù)器模式,即 SSH 客戶端會(huì)創(chuàng)建到 SSH 服務(wù)端的連接。SSH 服務(wù)器通常會(huì)作為守護(hù)進(jìn)程Daemon運(yùn)行,所以它常被稱(chēng)為 SSHD。你很難找到一個(gè)不自帶 SSH 守護(hù)進(jìn)程的 Linux 發(fā)行版。在 Fedora 33 中,已安裝了 SSH 守護(hù)進(jìn)程,但是并未激活。

你可以使用 SSH 控制幾乎所有的 Linux 機(jī)器,無(wú)論它是作為虛擬機(jī)還是作為網(wǎng)絡(luò)上的物理設(shè)備運(yùn)行。一個(gè)常見(jiàn)的用例是無(wú)頭headless配置的嵌入式設(shè)備,如樹(shù)莓派。SSH 也可以用做一個(gè)其它網(wǎng)絡(luò)服務(wù)的隧道。因?yàn)?SSH 連接是加密的,所以你可以使用 SSH 作為一個(gè)任何默認(rèn)不提供加密的協(xié)議的傳輸層。

在這篇文章中,我將解釋使用 SSH 的四個(gè)方式:1、如何在 Linux 端配置 SSH 守護(hù)進(jìn)程;2、如何設(shè)置遠(yuǎn)程控制臺(tái)連接;3、如何通過(guò)網(wǎng)絡(luò)復(fù)制文件,4. 如何將 SSH 作為某些協(xié)議的隧道。

1、配置 SSHD

將 Linux 系統(tǒng)(文中是 Fedora 33)作為 SSH 服務(wù)器,允許 PuTTY SSH 客戶端進(jìn)行連接。首先,檢查守護(hù)進(jìn)程的 SSH 配置。配置文件放在 ??/etc/ssh/sshd_config??,它包含了許多選項(xiàng),通過(guò)取消掉相關(guān)行的注釋就可以激活:

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Include /etc/ssh/sshd_config.d/*.conf
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

沒(méi)有取消任何注釋的默認(rèn)配置在這個(gè)示例中應(yīng)該是可以工作的。要檢查 SSH 守護(hù)進(jìn)程是否已經(jīng)運(yùn)行,輸入 ??systemctl status sshd??:

$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 577 (sshd)
Tasks: 1 (limit: 26213)
CGroup: /system.slice/sshd.service
└─577 /usr/sbin/sshd -D -oCiphers=[aes256-gcm@openssh.com][5],chacha20-[...]

如果它處于未激活inactive狀態(tài),使用 ??systemctl start sshd?? 命令啟動(dòng)它。

2、設(shè)置遠(yuǎn)程控制臺(tái)

在 Windows 下 ??下載 PuTTY 安裝程序??,然后安裝并打開(kāi)它。你應(yīng)看到一個(gè)像這樣的窗口:

PuTTY configuration screen

PuTTY configuration screen

在“主機(jī)名(或 IP 地址)Host Name (or IP address)”輸入框,鍵入你的 Linux 系統(tǒng)的連接信息。本文設(shè)置了一個(gè) Fedora 33 虛擬機(jī),它使用橋接網(wǎng)絡(luò)適配器,使我可以由 IP 地址 ??192.168.1.60?? 連接這個(gè)系統(tǒng)。點(diǎn)擊“打開(kāi)Open”,應(yīng)會(huì)如圖示的打開(kāi)一個(gè)窗口:

PutTTY security alert

PutTTY security alert

這是 SSH 的安全措施之一,是為了防止??中間人攻擊???man-in-the-middle attack。消息中的指紋應(yīng)該匹配 Linux 系統(tǒng)中放在 ??/etc/ssh/ssh_host_ed25519_key.pub??? 的密鑰。PuTTY 將這個(gè)密鑰以 ??MD5 哈希值?? 的方式打印出來(lái)。要檢查它的真實(shí)性,切換到 Linux 系統(tǒng)并打開(kāi)一個(gè)控制臺(tái),然后輸入:

ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub

輸出應(yīng)該和 PuTTY 展示的指紋一致:

$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub
256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519)

點(diǎn)擊“是Yes”以確認(rèn) PuTTY 的安全提示。主機(jī)系統(tǒng)的指紋現(xiàn)在存儲(chǔ)在 PuTTY 的信任列表中,其位于 Windows 的注冊(cè)表中的:

HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys

輸入正確的登錄憑證,然后你應(yīng)該進(jìn)入控制臺(tái)了,位置在你的用戶主目錄。

Logged in to SSH

Logged in to SSH

3、通過(guò)網(wǎng)絡(luò)復(fù)制文件

除了遠(yuǎn)程控制臺(tái),你同樣可以使用 PuTTY 通過(guò) SSH 來(lái)傳輸文件。PuTTY 的安裝目錄在 ??C:\Program Files (x86)\PuTTY???,在該目錄下尋找 ??ppscp.exe??。你既可以使用它從 Linux 系統(tǒng)復(fù)制文件,也可以復(fù)制文件到 Linux 系統(tǒng)。

使用 ??Windows + R??? 然后輸入 ??cmd??? 來(lái)打開(kāi)命令提示符,從你的 Linux 用戶主目錄復(fù)制 ??MYFile.txt?? 到你的 Windows 主目錄,輸入:

C:\"Program Files (x86)"\PuTTY\pscp.exe stephan@192.168.1.60:/home/stephan/MyFile.txt .

要從 Windows 主目錄復(fù)制文件到 Linux 用戶主目錄,輸入:

C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt stephan@192.168.1.60:/home/stephan/

就像你也許已經(jīng)發(fā)現(xiàn)的那樣,復(fù)制的命令通常構(gòu)造為:

pscp.exe <source> <target>

4、隧道化一個(gè)協(xié)議

假設(shè)你擁有一個(gè) Linux 機(jī)器,為某些特別的應(yīng)用運(yùn)行一個(gè)基于 HTTP 的服務(wù)。你想從你的 Windows 機(jī)器通過(guò)互聯(lián)網(wǎng)訪問(wèn)這個(gè) HTTP 服務(wù)。而且,你不能將相關(guān)的 TCP 端口暴露在公網(wǎng),因?yàn)椋?/p>

  1. 這個(gè)服務(wù)通過(guò) HTTP 而非 HTTPS 運(yùn)行
  2. 根本沒(méi)有用戶管理和登錄系統(tǒng)

乍一看,建立這種架構(gòu)不產(chǎn)生可怕的漏洞似乎是不可能的。但是 SSH 可簡(jiǎn)單的為這種情況建立一個(gè)安全的解決方案。

我將用我的軟件項(xiàng)目 ??Pythonic??? 來(lái)演示這個(gè)過(guò)程。在容器中運(yùn)行。Pythonic 作為容器運(yùn)行,開(kāi)放兩個(gè) TCP 端口:TCP 端口 7000(主要編輯器)和 TCP 端口 8000(??code-server?? 代碼編輯器)。

要在一個(gè) Linux 機(jī)器上安裝 Pythonic ,運(yùn)行:

    podman pull pythonicautomation/pythonic
podman run -d -p 7000:7000 -p 8000:8000 pythonic

轉(zhuǎn)向你的 Windows 機(jī)器,打開(kāi) PuTTy,轉(zhuǎn)到 “連接Connection -> SSH -> 隧道Tunnels”。加入你要轉(zhuǎn)發(fā)的兩個(gè) TCP 端口:

  • 源:??7000??? / 目標(biāo):??localhost:7000??
  • 源:??8000??? / 目標(biāo):??localhost:8000??

Port forwarding in PuTTY

Port forwarding in PuTTY

然后返回 “會(huì)話Session” 部分,并像之前那樣建立一個(gè) SSH 鏈接。打開(kāi)網(wǎng)頁(yè)瀏覽器,然后轉(zhuǎn)到 ??http://localhost:7000??;你應(yīng)該看見(jiàn)像這樣的窗口:

Pythonic

Pythonic

你成功的設(shè)置了端口轉(zhuǎn)發(fā)!

警告: 如果你選擇在公網(wǎng)上暴露 TCP 端口 22 ,不要使用易于猜測(cè)的登錄憑證。你將接受來(lái)自全世界的登錄請(qǐng)求,它們使用常見(jiàn)的、標(biāo)準(zhǔn)的登錄憑證以嘗試登錄你的 Linux 機(jī)器。相反,只允許已知的用戶登錄。這種登錄限制可以通過(guò) ??公鑰加密?? 來(lái)實(shí)現(xiàn),它使用一個(gè)密鑰對(duì),其中公鑰存儲(chǔ)在 SSH 主機(jī)上,而私鑰保留在客戶端。

調(diào)試

如果你難以連接你的 Linux 機(jī)器,你可以跟蹤你的 SSH 守護(hù)進(jìn)程的處理過(guò)程:

    journalctl -f -u sshd

這是一個(gè)普通的登錄進(jìn)程,但是其日志級(jí)別為 DEBUG,它看起來(lái)是這樣的 :

LogLevel DEBUG output

LogLevel DEBUG output

了解更多

這篇文章幾乎沒(méi)有涉及到使用 SSH 的方法。如果你正在尋找一個(gè)特定用例的信息,你也許可以在互聯(lián)網(wǎng)中找到無(wú)數(shù)的教程。我在工作中使用 PuTTY ,因?yàn)樗子谠O(shè)置,在兩個(gè)操作系統(tǒng)間又具有良好的可操作性,使得它成為連接解決方案里的瑞士軍刀。

(文內(nèi)圖片來(lái)自:Stephan Avenwedde,??CC BY-SA 4.0??)

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2019-02-18 09:36:12

2022-08-30 10:33:08

LinuxUSB系統(tǒng)

2019-07-12 15:00:09

程序Windows 10Internet

2021-01-04 09:19:06

WindowsLinuxGUI程序

2022-08-08 09:34:33

Linux串行控制臺(tái)

2020-02-11 15:50:51

WindowsLinux命令行

2020-04-17 14:37:19

WindowsLinux微軟

2019-08-27 09:20:21

無(wú)線打印機(jī)Windows 10PC

2018-12-24 09:48:45

UbuntuLinuxPutty

2011-04-26 13:17:36

AS3MySQL

2015-01-08 10:18:46

OS XX-Windows

2019-03-14 14:30:48

SSHLinux特定目錄

2017-03-01 11:15:43

LinuxKali LinuxSSH服務(wù)

2023-05-04 18:45:11

2015-04-09 09:08:20

2019-11-08 10:00:09

Windows手機(jī)應(yīng)用程序

2019-10-09 16:50:48

SSHLinux遠(yuǎn)程系統(tǒng)

2017-09-18 10:05:15

WindowsLinux容器

2022-03-11 13:28:54

SSHLinux命令

2017-03-16 18:50:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)