顯示具有 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)」下些文字型命令。多開幾個後,桌面就顯得有些擁擠。雖然,「終端機」有分頁的設計,但有時開啟終端機並非由「新分頁」。將兩個分開的「終端機」合併成為一個有「分頁」的「終端機」,所需步驟如下:

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

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