SSH Server Install
时间:2006-08-05 来源:leigaiting
- Red Hat 7.x 系統:
由於 Red Hat 7.x 系統本身就已經開啟了 sshd 了,所以你可以直接以 ssh 來連上你的主機囉!不過,如果沒有正常開啟 SSH 的話,那樣要如何啟動呢?也是很簡單的,你可以這樣:
- 以 『/usr/sbin/setup』程式進入 setup 的話面中;
- 選擇 『System Services』這個項目;
- 然後向下移動到『 [*] sshd 』,將 [*] 勾選(按下空白鍵即可);
- 然後以 tab 按鍵移動到『 OK 』按下 enter;
-
這樣就設定完開機啟動了!然後以底下的方式來啟動 ssh 服務:
-
/etc/rc.d/init.d/sshd start
-
來啟動 sshd 這個服務,要知道有沒有正常的啟動 ssh 呢?呵呵,只要輸入底下的指令:
-
netstat -a | more
-
如果一切正常的話,你將會看到類似底下的這一行:
-
tcp 0 0 *:ssh *:* LISTEN
-
那就表示 ssh 已經成功的啟動了!不過,如果萬一你的 Linux 系統並沒有安裝 ssh 這個服務呢?呵呵!那就安裝他吧!其實,ssh 這支服務的主要程式稱為 openSSH 囉!然後,如果您想要重先安裝 openssh 來提供 ssh 的服務,那麼 Red Hat 的網站上隨時更新的 Errata 您就不能不去看看!你可以按底下的連結上去 Red Hat 下載屬於您系統的最新的 openssh 這個套件!
-
小紅帽的 Errata 網頁
-
然後按下您的 Red Hat 版本,進入後,去尋找 openssh 字眼的套件,那個就是啦!然後按下連結之後,直接找到屬於您的系統版本,例如我都是直接捉 i386 的 RPM 檔案,然後回來以 root 身份執行:
-
rpm -ivh openssh*
-
如果您只是要升級 openssh 的話,那就使用:
-
rpm -Uvh openssh*
-
更有甚者,直接以 up2date 來升級,(不過會比較慢一些喔!)
-
up2date -i openssh
-
升級成功之後,就可以直接的以上面的方式來啟動 ssh 這個服務了!
VBird 的經驗 在上一次更新 openSSH 套件的時候,那是因為網路上發表了舊的 openssh 可能有些安全方面的問題,所以 VBird 就去更新了,但是沒想到更新完成之後 SSH 竟然不會動!當真是嚇了一大跳!後來,找了一些檔案之後,才發現,原來預設的 PAM 模組的屬性搞錯了!你可以到 /etc/pam.d 這個目錄下去看一下,會發現 sshd 的屬性竟然是 600,與其他的檔案屬性都不同,後來執行了: chmod 644 sshd 就 OK 囉!如果你也更新之後發現有這個問題,可以參考看看囉! |
- Red Hat 6.x 以前版本的 Linux 啟動 ssh 服務:
好了,那麼要如何的在 Red Hat 6.x 以前的版本上執行 ssh 這個服務呢?其實也是很簡單的,如前所說的, ssh 其實是 openssh 套件的一種,而 openssh 有使用到 openssl 這個資料保密的套件,(其實還有其他的套件需要安裝,不過,由於我這裡預設條件是您已經用『完整安裝』來安裝您的 Linux 系統,所以其他的套件應該都已經安裝完整了才對!) VBird 不是很建議使用 RPM 來安裝 openssh ,因為在 Red Hat 6.x 以前的版本上面安裝 openssh 的 RPM 實在是太麻煩了!所以,我們就使用 tarball 的方式來安裝吧!
-
下載 openssl 與 openssh:
到哪裡下載呢?直接到他們的網站上去看看相關的訊息吧!到目前為止(2002/01/18),openssh 最新版本為 3.0.2 (2001/12/3 釋出),而 openssl 最新則是 0.9.6c (2001/12/21) 這個版本:
-
或者您也可以在這裡下載 OpenSSH 與 OpenSSL 這兩個檔案。
-
安裝:
由於 openssh 會使用到 openssl 的資料,所以當然需要先安裝 openssl 之後,在安裝 openssh 囉:
[root @tsai root]# cd /usr/local/src [root @tsai src]# tar -zxvf /root/openssh-3.0.2p1.tar.gz [root @tsai src]# tar -zxvf /root/openssl-0.9.6c.tar.gz [root @tsai src]# cd openssl-0.9.6c [root @tsai openssl-0.9.6c]# ./config --prefix=./usr/local/openssl 將資料安裝在 /usr/local/openssl 這個目錄,這樣安裝的好處是, 往後在移除該套件較為容易!直接移除該目錄就好了! ...... [root @tsai openssl-0.9.6c]# make 開始編譯囉!
[root @tsai openssl-0.9.6c]# make test
[root @tsai openssl-0.9.6c]# make install
[root @tsai openssl-0.9.6c]# cd ../openssh-3.0.2p1
[root @tsai openssh-3.0.2p1]# cd contrib/redhat
[root @tsai redhat]# cd ../.. |
上面這樣就安裝完畢啦!
-
啟動:
再來就是需要啟動 SSH 這個套件了,你應該可以到 /usr/local/openssh 去,進入 /usr/local/openssh/sbin 去執行 sshd 這個檔案,也就是:
-
/usr/local/openssh/sbin/sshd
-
就完成啟動的程序囉!如果不相信的話,那就執行 netstat -a | more 看看有沒有 ssh 這個服務吧!
-
既然啟動了 ssh 那麼 telnet 自然就不需要繼續存在囉!沒錯,因為 ssh 可以完全取代 telnet 的功能的!所以呢,請:
-
vi /etc/inetd.conf
-
找到底下這一行:
-
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
-
在前面加上一個註解符號『#』就可以啦!然後退出之後,執行:
-
/etc/rc.d/init.d/inet restart
-
重新啟動 inet 這個服務,然後以 netstat -a | more 看一下,嘿嘿嘿嘿! telnet 的服務就不見了!那我們就可以使用 ssh 來取代囉!
-
Linux sysem:
好了,現在我們知道主機可以使用 ssh 來進行連線的服務,但是怎樣在用戶端( Client )執行連線的軟體呢?哈哈!很簡單,如果你是以 Linux 系統來連線的話,那麼你應該可以在 /usr/bin 裡面找到一個 ssh 的軟體,(如果是使用 tarball 的話,那麼 ssh 就會在 /usr/local/openssh/bin 裡面囉!)你可以這樣來執行連線程式:
-
ssh -l username host.name.domain
-
假設我要以 vbird 這個帳號登入一個名為 testing.adsldns.org 的主機,那麼就以: ssh -l vbird testing.adsldns.org 來執行登入連線的程序!然後如果是第一次登入的話,你會發現到有一個訊息,告訴你要不要接受一個認證碼,直接選擇 yes 就可以連線囉!使用 ssh 最大的另一個好處,root 也可以登入喔!
-
Windows system:
那萬一你是使用 Windows 為 Client 呢?那也沒問題,你可以到 PuTTy 的網站上下載 putty 這支程式:
-
或者是在 這裡 下載。這支程式完全不需要安裝,直接以滑鼠雙擊他,就會自動的執行了!
-
好了!雖然 openssh 是比較安全沒錯,但是並不是一定安全的!所以,你仍然可以設定一些簡單的安全防護來防止一些問題的發生!其實,說穿了,就是將一些你不想要讓他登入的 IP 擋掉他就是了,然後只開放一些可以登入的 IP 就是了!
-
防火牆:
由於 ssh 這個服務是開啟在 port 22 ,所以你可以使用 ipchains 或 iptables 來開放一些你允許的 IP 以 port 22 進入!
-
TCP Wrappers:
如果不會設定 ipchains 或 iptables ,那也沒關係!剛剛我們在安裝的時候不是有選擇 --with-tcp-wrappers 嗎?呵呵,這個時候就派的上用場了!你可以到 /etc/hosts.allow 去設定你允許的 IP 連線到你的主機裡面,例如你允許 192.168.1.1-192.168.1.255 連線到你的主機,那麼你可以:
-
sshd : 192.168.1.0/24: Allow
-
而將其他的 IP 都擋掉在 /etc/hosts.deny 當中:
-
sshd : ALL : Deny
-
如此一來則 ssh 只會開放給 192.168.1.1-255 之間的電腦囉!以後要再開放的話,那就再將其他的 IP 加到 /etc/hosts.allow 當中去就好囉!