顯示具有 SSH 標籤的文章。 顯示所有文章
顯示具有 SSH 標籤的文章。 顯示所有文章

2017年11月5日 星期日

解決「SSH 連線出現 bind: Cannot assign requested address」的問題

最近使用 SSH 連線至「遠端電腦」,都會出現一個訊息,
[SiB@Celeron-D ~]# ssh -p 5566 SiB@192.168.10.17 -L 7508:127.0.0.1:8508 -L 7558:192.168.10.55:8558
SiB@192.168.10.17's password:
bind: Cannot assign requested address
channel_setup_fwd_listener_tcpip: cannot listen to port: 7508
bind: Cannot assign requested address
channel_setup_fwd_listener_tcpip: cannot listen to port: 7555
Could not request local forwarding.
Last login: Sun Nov  5 17:40:30 2017 from 192.168.10.13
但是操作、使用上都沒有問題。對此有些納悶,想瞭解問題的徵結所在,也看是否能將這個問題解決。
  查了網路,多提到要修改 /etc/hosts 這個檔案。參考這些建議修改,訊息照樣出現。不過確定一點是:有 forward 參數時,才會出現這個訊息。後來靈機一動,是不是 IPv4 和 IPv6 的問題。在 SSH 命令中強制使用 IPv4,
[SiB@Celeron-D ~]# ssh -4 -p 5566 SiB@192.168.10.17 -L 7508:127.0.0.1:8508 -L 7558:192.168.10.55:8558
SiB@192.168.10.17's password:
Last login: Sun Nov  5 18:45:23 2017 from 192.168.10.13
就是上例中的 -4,結果那些訊息都不再出現了。

已測試版本:

  • Fedora: 26

參考資料:

2017年1月2日 星期一

「同時開啟『終端機』多個分頁及連線」的方法

在「終端機」下命令操作電腦系統,對習慣快速獲得結果的使用者而言,是最有效的方法。對於常常需要連線到不同「遠端電腦」操作,在一個「終端機」開啟數個『分頁』,既可將所有「終端機」連線集合在一起,在不同連線間切換也很快速。
  幾個之前的相關發文,
請讀者自行參考。
  以下就是筆者常用的幾個做法,以「MATE 桌面」為例,分幾個段落整理如下:

2016年12月17日 星期六

SSH「自動認證機制」改進 - 使用 SSH-COPY-ID

在之前幾篇發文『SSH「自動認證機制」之改進 - 快速複製密鑰』、『SSH 的「自動認證機制」 - 使用 ECDSA 密鑰』及『SSH 的「自動認證機制」 - 使用 DSA 密鑰』中,將產生的公鑰複製到另一個電腦的『自動認證』公鑰檔案中,需要經過幾個步驟的操作,或使用複雜的命令。
  最近注意到 SSH 的工具中有個程式 ssh-copy-id,看其名稱似乎與 SSH 的密鑰複製有關,今天有空就來試試這個命令。以最近一篇 『SSH 的「自動認證機制」 - 使用 ECDSA 密鑰』的命令而言,利用 ssh-copy-id 這個命令,可以將『複製密鑰』的命令改得更簡單。

2016年9月18日 星期日

透過「SSH Tunnel (通道)」使用「NFS 服務」

應用 NFS 分享檔案是 Linux 使用者常用的方式,但是 NFS 的安全性有限,除非是使用最新的認證機制 ①。一個比較簡單的方法是透過 SSH 建立『通道 (Tunnel)』,利用 SSH 的安全機制加密 NFS 的通訊。
  前文幾篇用 AutoFS 自動建立 NFS 連線的說明,
所述步驟有些部分需要修改才可適用。以下就是在上述步驟需要增加、修改的說明。

2016年3月28日 星期一

VNC Viewer 使用 SSH 的『中繼』設定

VNC 是 Linux 系統中常用的「遠端桌面」連線工具,但是傳輸時的安全性低,所以一般使用時多會配合 SSH 建立通道,透過此加密通道傳輸「遠端桌面」的資料。參考前面的發文:
連線時先用 SSH 建立重導之通道,再用 VNC Vierwer 建立 VNC 連線。
  之前看過 VNC Viewer 的說明有提到一個參數『 -via <gateway>』,似乎可以同時下 VNC 及 SSH 連線命令。經過一般折騰,終於成功,把過程記錄如下:

2015年10月4日 星期日

解決「透過 SSH 連線,開啟遠端『圖形化用戶介面(GUI)』程式』失敗的問題

依前文〝透過 SSH 連線,開啟遠端的「圖形化用戶介面(GUI)」程式〞開啟「遠端電腦」的「圖形化用戶介面(GUI)」程式,卻出現錯誤訊息。
[SiB@Celeron-D ~]$ ssh 192.168.10.17 -p 5566 -X
SiB@192.168.10.17's password:
X11 forwarding request failed on channel 0
Last login: Sun Oct  4 11:18:10 2015 from 192.168.10.13
[SiB@Core-i7 ~]$ pluma

(pluma:6316): Gtk-WARNING **: cannot open display: 
由於「遠端電腦」已經升級為 Fedora 22,因此可以判定問題出在「遠端電腦」SSH 服務的設定之預設值有修改所致。

2015年7月27日 星期一

解決「用 semanage 修改 SSH 埠號的 SELinux 屬性失敗」之問題

前幾次的安裝步驟都是先從 Fedora Server 安裝起,重開機後立即切換成 Workstation 後,接著就是「MATE 桌面」,再設定 SSH 服務。這次安裝的電腦,主要是做為「伺服器」用,就想先設定 SSH 服務,等以後有需要再安裝「MATE 桌面」。沒想到設定到這個步驟出了問題
[root@Celeron-D ~]# semanage port -a -t ssh_port_t -p tcp 5566
bash: semanage: 找不到指令...
就是『semanage』這個命令找不到,一時覺得有些奇怪,以前怎麼都沒問題?

2015年1月18日 星期日

解決「Fedora 21 Workstation (工作站) 的『SSH 服務』未自動啟用」問題

安裝 Fedora 21 Workstation (工作站)後,只將『SSH 服務』依前文『修改 SSH 的預設設定檔』的步驟設定,也沒有再用 SSH 連入這台『工作機』。最近,因想用 sftp 傳輸幾個檔案,才發現竟然不能連到『工作機』。
  之前的 Fedora 版本,都是將『SSH 服務』預設啟用,就查一下『SSH 服務』的狀態(以下的所有操作都在 ROOT 權限下):
[root@Celeron-D ~]# systemctl status sshd.service
●sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled)
   Active: inactive (dead)
從查詢結果可以看出,Fedora 21 Workstation 沒有在開機時自動啟用『SSH 服務』(即:disable),且未啟用(即:『inactive (dead)』)。只好手動設定它了,

2014年10月17日 星期五

SSH「自動認證機制」之改進 - 快速複製密鑰

在前文『SSH 的「自動認證機制」 - 使用 DSA 密鑰』和『SSH 的「自動認證機制」 - 使用 ECDSA 密鑰』中,要將產生的公鑰複製到另一個電腦的『自動認證』公鑰檔案中,需要經過幾個步驟的操作。
  一直都有想找到更方便、快速命令的想法。果然,從網路上查到高手的解答,利用這個機會,分析一下這個複合命令的細節。就用以下這個複製 DSA 密鑰的命令
[SiB@Celeron-D ~]$ cat ~/.ssh/id_dsa.pub | ssh 192.168.10.15 -p 5566 -l SiB2 "cat >> ~/.ssh/authorized_keys"
或複製 ECDSA 密鑰的命令來解析
[SiB@Celeron-D ~]$ cat ~/.ssh/id_ecdsa.pub | ssh 192.168.10.15 -p 5566 -l SiB2 "cat >> ~/.ssh/authorized_keys"
這個複合命令可先分為兩個部分,
  • 第一個部份是『cat ~/.ssh/id_dsa.pub』是將以『ssh-keygen』產生的密鑰之公鑰輸出至『標準輸出(standard output)』,一般是指螢幕。
  • 『 | 』(pipeline,管線)是將前一個命令的『標準輸出』導至下一個命令的『標準輸入』。
  • 第二個命令是 SSH 的進階用法,又可拆分為兩個命令分別在不同電腦執行:
    • 以 SSH 連線至 192.168.10.15,埠號為 5566,登入帳號為 SiB2,並在登入後執行『cat >> ~/.ssh/authorized_keys』這個命令。
    • 在 cat 後並無檔案時,表示將從『管線』傳過來的資料當做『標準輸入』,再將之輸出至『標準輸出』
    • 其中『 >> 』是將『標準輸出』以『附加』的方式,加在檔案後面。
    • 所以命令『cat >> ~/.ssh/authorized_keys』可將傳過來的公鑰(在標準輸出)附加到認證檔的末端。
整個複合命令就是:將『本地電腦』的公鑰,經由『管線』傳至另一台電腦,再將之附加在認證檔之末端。

已測試版本:

  • Fedora: 19, 20

參考資料:

2014年5月20日 星期二

SSH 的「自動認證機制」 - 使用 ECDSA 密鑰

SSH 「自動驗證密碼」的公鑰、私鑰在之前多建議採用 DSA,在新版的 Fedora 中引入一個更好的公、私鑰演算法(事實上,是 OpenSSH 對新版導入的),稱為「ECDSA」。根據一些研究所言,「ECDSA」的加密強度是「DSA」的四倍,也就是『相同加密強度,只要 1/4 長度的私鑰即可。
  有新的加密演算法,當然就要使用它,以下是將前文『SSH 的「自動認證機制」 - 使用 DSA 密鑰』修改,使適用於「ECDSA」。為節省篇幅重覆部份只保留命令,而詳細說明留在前文,請讀者自行前往參考。

2013年2月3日 星期日

解決「SSH 連線,尚未輸入帳號、密碼即斷線」問題

為利用 SSH 連線時所提供的傳輸保密功能,幾乎「遠端(終端機)連線」多使用 SSH 這個連線協定。但是,偶而也是出現一種情況,使用 ssh(OpenSSH SSH client, Linux 系統)時較常發生,Putty(Windows 系統)反而較沒看過。
以 ssh 連線到「遠端主機」,「終端機」畫面一出現,連輸入帳號、密碼的提示文字都沒看清楚,就斷線。(註:有時連「終端機」畫面也沒出現)
這是因為 ssh 會將「遠端主機」的 RSA 金鑰暫存在『 ~/.ssh/known_hosts 』這個檔案中,當「遠端主機」
  • 重新安裝作業系統
  • 重新安裝 ssh 套件
  • 重新產生 ssh 的 RSA 金鑰
時,「遠端主機」的 RSA 金鑰就會和本地所暫存的不同,ssh 在連線時,一發現兩個金鑰不同就立即斷線。讀者看到的情況,就如上面紅色虛線框中所描述。
    解決的步驟也很簡單,『懶人招』就是
[SiB@Celeron-D ~]$ rm -f ~/.ssh/known_hosts
但是,將所有本地暫存的「遠端主機」金鑰全數刪除,會有一段時間連線時會稍微麻煩些。每次新連線都會問:「是否將金鑰儲存?」,輸入【yes】或【no】的回答後,方繼續連線程序。
    想清楚暸解原因,請看以下詳細說明。

2013年1月22日 星期二

「在 Fedora 18 仍然適用的 Fedora 操作程序」測試

安裝 Fedora 18 後,在修改系統的預設設定時,發現有些在 Fedora 以前版本的設定程序不再適用。趁著最近陸續的安裝、設定,把之前的設定程序,順便驗證一下。一方面也是提醒自己,還有哪些未試過。

可以直接適用的程序:

2012年10月20日 星期六

SSH 的「自動認證機制」 - 使用 DSA 密鑰

SSH 是一個安全相當高的「遠端終端機(Remote Terminal)」,也常用以建立「加密通道」、重導「遠端桌面」、或是加密的檔案傳輸。如果,這種連線是經常使用,每次都要輸入密碼是有些麻煩,但是不設密碼又不安全。
    所幸 SSH 有個不需輸入密碼的「自動認證」的機制,
  • 建立「公鑰」、「私鑰」
  • 將「公鑰」上傳到將登入的電腦
  • 建立連線時,自動認證並登入
設定後,在整個連線過程(從命令列到登入成功),除密碼不用再輸入外,其它皆與原來相同。設定步驟說明如下:

2012年10月2日 星期二

補充:『將分開的數個「終端機」合併成一個「終端機」』

前文『將分開的數個「終端機」合併成一個「終端機」』所述的步驟,在最近的操作中,有個新發現,趕快把它記錄下來。前文第二步驟中,提及
確認將合併的「終端機」之「選單」有「分頁(B)」這個項目,「終端機」的「分頁」移動功能才可操作。
只要在『搬移』過程的『來源』的「終端機」裏,確認有『分頁』即可,『目的』的「終端機」無『分頁』,也可順利完成將「終端機」合併的操作。

已測試版本:

  • Fedora: 14, 17

2012年9月26日 星期三

應急用的 SFTP 客戶端程式 – sftp

前文 “藉 SSH 的 SFTP 次服務,進行安全的「檔案傳輸」” 僅提及 SSH 的次服務 SFTP 的方便性、安全性。這是「伺服器」端的服務程式,不是「客戶」端的程式。
    在使用「圖形化介面」FTP 客戶程式時,只要用原來 SSH 服務的「埠號」、「帳號」和「密碼」就可以。但是,若該系統非自已管理,又未安裝這些「圖形化介面」FTP 客戶程式時,又想做一些檔案傳輸時,只有回到原始的「文字介面」了。
    幸好,Linux 系統的預設安裝中,都有 sftp 這個程式,在「終端機」下這個命令,就可以連到另一台電腦,
[SiB@Celeron-D ~]$ sftp -P 5566 SiB@192.168.10.17
上例中,『5566』、『SiB』及『192.168.10.17』分別為另一部電腦的 SSH 之『埠號』、『帳號名』及『網路位址』。

註:有時在急救系統時,不能安裝程式,又想備份一些設定時,sftp 應該很適合。

已測試版本:

  • Fedora: 14, 17

2012年9月20日 星期四

用較短的命令,加快建立由 SSH 重導之 VNC 連線

前文“開啟個人化的 VNC 服務,供「遠端桌面」連線”提到的啟動 VNC 方法,可能會遇到幾個問題:
  • 須由系統管理員開啟「防火牆」上的埠,供 VNC 使用。
  • 命令加上參數太長了,不是記不住,就是容易打錯字。
  • 太長的命令列,完整打完需要點時間,不是很方便。
解決上面三個問題,可以用前文提過的兩個做法來解決。

2012年9月9日 星期日

以範例說明 SSH 的連線、通道(Tunnel)使用

Linux 系統可以開啟許多網路服務,而「防火牆」又是電腦的必備防護機制之一,為了讓網路上的使用者能夠直接連線使用這些網路服務,就需在「防火牆」上開啟這些埠。就如在圍牆上打個洞一樣,總有一些人從這些小洞窺視,網路上常有人在掃描這些開放的埠。
    當然,可以再加些防護措施,但是愈多的防護,就是愈多的網路封包檢查,CPU 的運算就點點滴滴地花費在這些地方。除非必要,開放的埠愈少,被窺視、刺探的機會就愈少。把防護的網路封包檢查,集中在少數幾個埠,可以節省 CPU 的運算資源,特別是這些網路服務僅限系統使用者使用者。
    SSH 是網路公認相當安全的「遠端終端機」協定,除了簡單連線外,也有許多強化功能,方便網路連線使用。網路上常見將這些強化功能,用在穿透網路管制之用,但是,在網路世界裏,凡做過必留下痕跡,要查出用 SSH 穿透網路管制也不是難事。建議,還是少做為妙。
    本文接下來的介紹,以正當用途的使用為範圍,對於 非建議的用途 就不多著墨。畢竟,SSH 的連線是被授權的「使用者」才能使用,就像偵探小說一樣,都是從有限的『嫌疑犯』中去找犯人,要找出來太容易了。

2012年9月8日 星期六

在「遠端桌面」啟動「圖形化用戶介面(GUI)」管理程式

VNC 或 RDP 可以將「遠端電腦」的「虛擬桌面」顯示在「本地電腦」,著實可以帶來許多便利。但是,在 Fedora 類的作業系統卻因 SELinux 的保全功能,而不能點選、啟動「遠端電腦」中的「圖形化介面」之系統管理程式。其它一般使用者的程式,倒沒有這些問題。
    對於初學者而言,使用「圖形化介面」的系統管理程式,的確可以減少許多阻力。畢竟,對多數使用者而言,為了系統管理的工作,而背一大堆命令、參數,似乎有點辛苦。前面發表過一篇“透過 SSH 連線,開啟遠端之「圖形化用戶介面(GUI)」的程式”,只提了利用 SSH 的 -X 這個參數,將「遠端電腦」中執行的「圖形化介面」程式的畫面重導至「本地電腦」。
    實際上,「遠端電腦」中「虛擬桌面」所執行的「終端機」,若先切換至 root 身份,一樣可以執行系統層級的管理程式。而且是顯示在「遠端桌面」上。
這兩個方法使用時機,有些不同,在篇末再討論使用時機的問題。

2012年9月7日 星期五

藉 SSH 的 SFTP 次服務,進行安全的「檔案傳輸」

當有檔案傳輸的需求時,在 Linux 裏有許多選擇,初學者常在為安裝哪一種「檔案傳輸伺服器(FTP server)」而傷腦筋,即使得到很好的建議後,也會為如何設定而煩腦。

    如果,你的 Linux 已經安裝 SSH(常見的 Linux 系統多會預設安裝)、設定妥當。那就不需要再安裝什麼,你已經有一個『現成的』、『安全的』的「檔案傳輸服務」了。也不需要再設定帳號了,只要是這個 Linux 系統的使用者,就可以連線使用。

    登入、連線的步驟很簡單,也有很多現成的工具可用,如:Filezilla、gFTP 等。在 Windows 裏也有許多免費軟體,如:Filezilla、WinSCP 等,及一些有試用期的就不多列了。

    這個 SSH 的 SFTP 次服務使用的方法很簡單,基本上和 SSH 的登入差不多,網址及埠號:就和 SSH 相同,只有在 FTP 的客戶端連線時,要記得設定它使用的協定是 SFTP 即可。

注意:只有在這個 Linux 系統有帳號的使用者才可以使用,若是想讓「非帳號」使用者也可登入,還是得再安裝其它 FTP 服務才行。

已測試版本:

  • Fedora: 14, 17

2012年9月4日 星期二

將分開的數個「終端機」合併成一個「終端機」

在 Linux 的操作中,難免要開啟「終端機(Terminal)」下些文字型命令。多開幾個後,桌面就顯得有些擁擠。雖然,「終端機」有分頁的設計,但有時開啟終端機並非由「新分頁」。將兩個分開的「終端機」合併成為一個有「分頁」的「終端機」,所需步驟如下:

一、確認將合併的「終端機」

先確認那幾個「終端機」要合併成一個,