999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SSH命令行幫你實現6種“貼心”的安全應用

2018-09-10 10:44:58戎力
計算機與網絡 2018年5期
關鍵詞:指令

戎力

安全Shell是一種用于安全連接的網絡協議。它被大量地運用在針對各種服務器的連接、修改、上傳和最后退出的環節中。這些操作有時候可以通過工具來實現,有時甚至可以直接使用終端。在這里,您將了解到在標準的SSH之外使用終端的一些技巧。

在深入討論SSH技術之前,我們假設您對SSH密鑰的安全性和使用已經具有了一定的基本知識。在這篇文章中,我們將使用用戶來指代SSH的用戶,用yourserver.tld指代域名或IP地址,所以您需要自行替換成正確的用戶名和主機名信息。

為了修改SSH服務器端的配置,您需要直接以root身份登錄,或者通過sudo進行一般用戶權限的提升。而為了使得在/etc/ssh/sshd_config中的更改能在系統范圍內生效,您需要重新加載SSH服務。

根據您所使用的操作系統不同,具體操作上也會有所差異。例如在基于Debian的系統上,您需要以root身份或是做sudo提權后,在終端里輸入service ssh reload。每次當您更改了服務器端的SSH配置之后,就需要重新加載(或重新啟動)其對應的服務。

配置順序

和其他Linux系統工具一樣,配置選項生效的順序如下:

·在終端/應用程序中直接給出命令行的選項。

·用戶的配置文件(~/.ssh/config)。

·客戶端的系統范圍配置文件(/etc/ssh/ssh_config)。

這就意味著:任何通過命令行所輸入的SSH參數都比那些在配置文件中的選項有著優先的執行級別。因此對于單次性的操作而言,最好方式是直接使用命令輸入;而對于您要經常連接的特定主機,或是要用到不同用戶名的情況,最好還是保存在配置文件中。SSH守護程序本身用到的,系統范圍的配置文件被存放在etc/ssh/sshd_config處。

主機匹配

您可以在各種SSH配置文件中使用通配符,也就是說您可以把一個指令集應用到大范圍的主機上,然后對每個主機再使用一些特定的指令,例如:

在~/.ssh/config中,

·Host myhost-*

·Port 1234

·Host myhost-one

·Hostname myhost-one.yourserver.tld

·User admin

·Host myhost-two

·Hostname myhost-two.yourserver.tld

·User anotheradmin

在上面的例子中,兩臺服務器使用相同端口號1234,不同的用戶名建立不同的連接。有了這些基礎知識,我們就可以開始用SSH來實現以下6種應用了。

1. SFTP

“想訪問存儲在服務器上的文件,但無需安裝任何額外的軟件。”

大多數FTP應用程序(例如FileZilla)都可以使用SFTP(SSH的文件傳輸協議),它是將文件傳輸到您的Web主機的首選方式。在其GUI上,您可以填寫地址、端口、用于SSH連接的用戶名以及要傳輸的文件。通常情況下,您需要進入應用程序的設置界面,禁用固定的密碼,而改用您的SSH私鑰來建立連接。

在終端上,您可以通過輸入sftp,來調出交互式控制臺。請記住,由于其SFTP只提供有限的命令選項,如:創建目錄、瀏覽訪問的目錄和下載/上傳文件,因此您無法在控制臺內使用到SSH的其他所有命令。您可以通過鏈接:https://itservices.usc. edu/sftp/cline/來了解更多的SFTP命令行操作。

2. KeepAlive

“我的防火墻老是關閉我的連接。”

有時候,您的防火墻可能會中斷掉一些正常的連接。下面就有三個指令能夠防止SSH連接被過早地掐斷。

TCP KeepAlive可以在SSH的客戶端和守護進程的配置文件中使用。它決定了是否需要發送保持連接的TCP消息。TCP KeepAlive的默認值為yes。它會發出TCP消息,提醒防火墻注意到連接的繼續,而不要掐斷它。當然有些用戶在不需要的時候可以將TCP KeepAlive設置為no。

ServerAliveInterval驗證其連接是否存活。在客戶端配置中,您可以指定客戶端在發送數據包給服務器之前所需等待的秒數。如果將該值設置為0,即禁用此選項,則會在一段空閑的時間之后斷開SSH會話。而指令ServerAliveCountMax指定了從發送數據包,到該連接由于沒有來自服務器的響應而被取消的反復嘗試次數(一般為整數)。

ClientAliveInterval是在SSH守護進程的服務配置文件/etc/ssh/sshd_config中所使用的指令。它指定了服務器在發送數據包給客戶端之前所需等待的秒數。您可以將該值設置為0,即禁用該選項。而指令ClientAliveCountMax指定了從發送數據包,到該連接由于沒有來自客戶端的響應而被取消的反復嘗試次數(一般為整數)。

所有主機都使用相同的客戶端SSH配置文件,來設置keep alive的參數:

在~/.ssh/config中

·Host *

·ServerAliveInterval 30

·ServerAliveCountMax 10

這樣的配置意味著客戶在發送一個空包之前要等待30s,并且要嘗試多達10次,以確認在服務器無響應的情況下中斷連接。

3. SSH代理

“我覺得每次輸入密碼短語很繁瑣,也許我應該生成一些密鑰而非密碼短語。”

一種常見且有效的安全做法是加密您的SSH私鑰,并用密碼短語來進行解密。這種方法的缺點是:您每次都必須繁瑣地重新輸入密碼以初始化SSH連接,而這本質上就是反復輸入密碼的過程。

為了解決這個問題,可以使用ssh-agent。它是一種能在會話期間將私鑰保持在內存之中的工具。當代理啟動后,所有需要SSH連接的窗口和應用程序都將通過該代理來獲得您的私鑰,因此只需要在會話開始的時候一次性輸入密碼短語便可。

在大多數Linux操作系統上,SSH代理是默認運行的,因此不需要額外進行安裝。如果您想檢查ssh代理是否正在運行,您可以在終端里輸入:

.ps x | grep ssh-agent

如果還沒有運行的話,您可以這樣啟動它:

.eval $(ssh-agent)

一旦它運行起來,您就可以羅列出ssh代理當前可用的所有密鑰:

.ssh-add L

如果要用的密鑰丟失,您可以通過ssh-add / path/to/your/ssh/privatekey來添加它。當您想連接一臺主機,卻碰到Too many authentication failures for user的錯誤時,這就意味著SSH代理正在試圖檢查所有可用的密鑰。因此最好的方法是在您的配置文件中定義一個IdentityFile / path/to/your/ssh/privatekey/forthishost。如果您要確保只能使用由IdentityFile所定義的連接,則可以在配置中使用指令IdentitiesOnly yes,它會告訴SSH只使用由終端或配置文件所提供的密鑰。請看如下的例子:

在~/.ssh/config中,

·Host yourserver

·HostName yourserver.tld

·IdentityFile~/.ssh/yourprivatekeyname

·IdentitiesOnly yes

·User user

如果我就只想在最開始的時候輸入一次密碼短語,之后就算我從一臺主機連接到另一臺主機的時候,也不要提示我再次輸入,這時候可以使用“代理轉發”。

為了能夠在互連的主機之間共用相同的信任憑證,代理也是可以被轉發的。雖然這樣的轉發非常方便,但是請記住:代理僅能將您的私鑰保存在內存之中。一旦某個惡意程序攻破了聯網的一臺主機,就能使用您的密鑰在其他主機上執行各種命令。可見,代理轉發是一種不安全的方法,只能在您所連接的信任主機上被使用。

為了用到代理轉發,您需要在客戶端的ssh_config上設置ForwardAgent yes,并在任何需要用到轉發代理的服務器上的/etc/ssh/sshd_config里設置AllowAgentForwarding yes。

4.通過本地端口轉發的隧道

“我想要做的事情,本地電腦不允許,但我知道哪里會有一臺電腦是允許的。”

隧道是SSH的一種最常見的高級使用案例。它在SSH連接內通過加密應用的流量,從而實現安全保護。這對于傳統軟件或其他安全性欠佳的應用和系統來說是非常有用的,它為軟件設置了一個不能也無法改變的安全包裝,以抵御不安全網絡環境。

(1)服務器端

服務器端可以修改文件/etc/ssh/sshd_config中的配置。由于以#開頭的行是被注釋掉的,因此如果您想使用該選項的話,只要復制出另外一行進行修改或者直接取消掉注釋便可。對于端口轉發式的隧道,為了使其工作,您需要開啟TCP的轉發。

在/etc/ssh/sshd_config中,

·AllowTcpForwarding yes。

如果您修改了服務器的配置文件,請記得重新加載SSH服務。至于如何重載或重新啟動您的服務端的服務,則取決于操作系統的類型。在大多數情況下,應該是如下命令:

·service ssh reload

(2)客戶端

在客戶端有好幾種方法來使用SSH隧道。大多數情況下,可以這樣來實現SSH隧道:

如果您想對一個僅供另一臺機器訪問的數據庫來執行查詢操作,那么就需要用隧道來連接那臺機器。下面的例子展示了如何運用yourserver.tld來隧道連接到一臺PostgreSQL數據庫服務器,并且在那里使用基于終端的psql frontend。

①ssh-L5000:psql.server.ip:5432 user@yourserver.tld

②psql-p 5000-h 127.0.0.1-U postgres

一些網站被您的網絡所封鎖,所以要用隧道來進入一臺允許各種連接和能夠瀏覽這些網站的主機。下面的命令能夠使用本機以隧道的方式進入另一臺不受限制的主機。在本地計算機上,您可以在瀏覽器中輸入并打開http://localhost: 1337,它將用默認的HTTP 80端口打開yourwebsite.com。

ssh -L 1337:yourwebsite.com:80

5. X11轉發

“我并沒有一些昂貴軟件的許可證,我只能在連上服務器后,顯示在我家里的屏幕上。”

您可以通過SSH來初始化X11轉發,這就意味著您可以顯示遠程的計算機桌面環境,并將各種X11包轉發到您所使用的計算機上。X11轉發有著廣泛的適用性,特別是在您必須使用某個特定軟件的GUI時。在下面的例子中,我們將測試用X11來轉發xclock。

(1)先決條件

為了能將X11包轉發給客戶端,xauth包必須被預先安裝在服務器上。所以如果你想測試xclock的話,就必須提前安裝好它。

(2)服務器

在服務器上,需要在/etc/ssh/sshd_config里啟用X11Forwarding。具體操作是:定位到具有X11Forwarding的一行,將其設置為yes,也就是說:如果該行已經存在,并被注釋掉了的話,您直接刪除前面的#便可。

在/etc/ssh/sshd_config中,

·X11Forwarding yes

在修改了配置文件之后,請不要忘記重新加載SSH服務。

(3)客戶端

·ssh-X

現在,您可以使用X11來將服務器轉發到客戶端的計算機上了。通過輸入xclock,一個時鐘窗口會在您的桌面電腦上彈出,如截圖所示。

X11轉發的偉大之處在于:當你想使用一個由于授權方面的原因而只能安裝在一臺服務器上的軟件,或是與您的普通電腦有著不同的性能需求時,都可以用到X11轉發。

6.代理跳轉(ProxyJump)

“我想訪問與外界相隔離的專用網絡,我會搭建一臺能夠連接的服務器,然后跳轉到要去的那些機器上。”

SSH的一種常見訪問策略是連接到一臺堡壘主機上,然后從那里跳轉到沒有公共路由的設備上。該堡壘主機被稱為代理鏈上的第一跳主機。ProxyJump是OpenSSH的一個新功能,它簡化了所用到的跳躍主機。在您不希望被公開暴露時,它為主機添加了一層額外的安全。

這方面的一個案例是:用一臺小機器作為路由器后面的堡壘實體機,在上面運行sshd,并從那里跳轉到其他主機上。可見,這對于家庭網絡是很實用的。這與從端口轉發和從一臺主機隧道到下一臺上并沒什么不同,只是現在這種情況下,用關鍵字ProxyJump描述的是在指定的多臺主機間跳躍,參照的是含有逗號分隔的列表。在終端上,請使用參數-J,如下所示:

·ssh-J proxy.server.tld:22 yourserver.tld

對于更為復雜的、需要使用不同的用戶名來實現的若干臺主機間的跳轉,可以使用:

·ssh-J [email protected]:port1,[email protected]:port2

由于可能會經常使用到主機間的跳轉,因此最好把它們包含在用戶或系統常規SSH配置之中。如下的配置文件就適用于上述的用例:

在~/.ssh/config中,

·Host yourserver.tld

·HostName yourserver.tld

·ProxyJumpuser1@proxy.server1.tld:port1,user2@proxy. server2.tld:port2

·User user

你也可以為每一個主機的跳轉指定SSH配置,并使用ProxyJump字段來指定它們的別稱。

在~/.ssh/config中,

·Host firstproxy

·HostName proxy.server1.tld

·Port 1234

·User user1

·Host secondproxy

·HostName proxy.server2.tld

·Port 5678

·User user2

·Host yourserver.tld

·HostName yourserver.tld

·ProxyJump firstproxy,secondproxy

·User user

注意,新添加的ProxyJump和那些舊的ProxyCommand指令都完全遵守“先到先得”的原則,這就意味著先設定的會被先執行、以此類推下去。如果您的SSH客戶端并不支持ProxyJump的話,您可以改用ProxyJump的指令:

ProxyCommand ssh firstproxy -W %h:%p。

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 亚洲天堂2014| 在线国产毛片| 久久公开视频| 亚洲无卡视频| 99精品久久精品| 国产日韩欧美视频| 久久情精品国产品免费| 麻豆精选在线| 亚洲欧美日韩中文字幕在线| 久久特级毛片| 999在线免费视频| 久草视频一区| 久久午夜夜伦鲁鲁片无码免费| 2020极品精品国产| 国产后式a一视频| 日本a∨在线观看| 91精品国产一区| 国产精品专区第一页在线观看| 日本a级免费| 欧美在线黄| 四虎AV麻豆| 亚洲黄色成人| 片在线无码观看| 伊在人亞洲香蕉精品區| 精品亚洲国产成人AV| 亚洲精品国产综合99| 欧美午夜在线视频| 五月婷婷伊人网| 2020最新国产精品视频| 久久永久免费人妻精品| 亚洲人成人伊人成综合网无码| 久久成人国产精品免费软件| 一级香蕉人体视频| 高清国产在线| 国产啪在线91| 欧美日韩在线国产| 色综合久久久久8天国| 91国内视频在线观看| 日韩色图在线观看| 在线观看网站国产| 亚洲人成网站在线观看播放不卡| 欧美综合中文字幕久久| 久久伊人色| 麻豆国产在线观看一区二区 | 久久99精品国产麻豆宅宅| 欧美天堂久久| 国产亚洲视频在线观看| 亚洲中文在线看视频一区| 亚洲男人在线天堂| 国产在线小视频| 国产福利在线观看精品| 欧美日韩国产综合视频在线观看 | 日韩免费视频播播| 激情国产精品一区| 亚洲最大综合网| 色妞www精品视频一级下载| 亚洲成人网在线播放| 嫩草影院在线观看精品视频| 91色在线观看| 国产剧情一区二区| 亚洲人成在线精品| 亚洲高清资源| 国语少妇高潮| 国产自无码视频在线观看| 精品国产亚洲人成在线| 国产在线一区视频| 国产黑丝视频在线观看| 一级毛片不卡片免费观看| 国产网站免费看| 色爽网免费视频| 一级不卡毛片| 国产69精品久久| 天天做天天爱夜夜爽毛片毛片| 五月天久久综合| 亚洲成人免费在线| 亚洲视频在线青青| 国产成人91精品| 国产精品手机在线观看你懂的| 国产精品成人一区二区| 国产69囗曝护士吞精在线视频| 乱人伦99久久| 在线a视频免费观看|