Openssh(ssh)基本設定

作者:cschen33@pchome.com.tw
最後更新日期:2004/10/20
目前ssh已經取代telnet成為主機連線的主要工具,因為telnet 是使用明碼連線,而ssh是使用編碼的連線方式,所以為了安全的因素,如果你還在使用telnet 請馬上改用ssh 的方式來連線到你的伺服器,以防連線的密碼或資料外洩

在區域網路上檢視連線內容
免費工具軟體 sniffit
它可以監看連線的資料,下載後安裝完畢執行下面的指令
sniffit -i  
會顯示一個視窗,當有連線產生時視窗內會有該連線IP,利用上下鍵就可以到所要觀察的IP,然後按ENTER,會另外開一個視窗來顯示該連線資料,如果要 離開該視窗只要按F10或Q就可以了
有了就個工具,你就可以了解為什麼telnet等明碼連線有多麼危險(密碼全都露)
另一個工具軟體iptraf
redhat內建套件
這是一個全視窗的軟體,你一定要會這個軟體,是即時的監看,可分介面,協定

基 本使用方法:
你可以把ssh當做telnet 來連線,如下:
命令
說明
telnet  主機名稱或ip
ssh     主機名稱或ip
用法相同但一個是有編碼另一個沒有編 碼

 

基它的用法:
命令
說明
ssh -l teddy ms25.hinet.net
ssh teddy@ms25.hinet.net

ssh teddy@ms25.hinet.net -p 23

ssh ms25.hinet.net  ls

ssh teddy@ms25.hinet.net "ls -l"
連線主機 ms25.hinet.net 登入使用者的名稱 teddy


變更連接埠

在遠端主機執行命令(在輸入密碼後立刻執行)
本命令執行ls,命令接到最後面就可以了
如果執行的命令需要參數則使用引號" "


SSH連線及驗證方式
1.ssh協定1(RSA1)-放棄討論,因為安全的因素,不建議使用(舊資料)
2.ssh協定2(RSA,DSA)-當我們連線使用協定2之類的驗證方法.使用PreferredAuthentications,首先使用 Hostbased的方法,如果失敗則使用公鑰的方法,最後會使用互動式的連線方式
上述使用公鑰-私鑰是我們首選,但是如何產生公私鑰?

產生公私鑰
ssh-keygen -t rsa1  ==>忽略
ssh-keygen -t rsa
ssh-keygen -t dsa
範例:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
#提示你輸入要存放key的位置內定是$home/.ssh/id_rsa,如果key為dsa則位置為$home/.ssh/id_dsa
#如果你已經存在會提示你要不要overwrite
Enter passphrase (empty for no passphrase):
#這是一個類似密碼,但是比密碼強多,最好超過15碼,可包含空白等特殊符號,你可以空白不輸入(不建議)

上述會產生兩個檔一個是id_rsa另一個id_rsa.public,一個是私鑰,另一個是公鑰
#觀念分析:
host1
host2
說明
ssh-keygen -t rsa -N "密碼"

scp $home/.ssh/id_rsa.pub host2:/$home/.ssh/authorized_keys2

ssh host2

產生公私鑰

複製公鑰到host2,經測試可以是authorized_keys或authorized_keys2

如此你就可以登入host2

本機建立公私鑰,很奇怪的是給別台電腦公鑰然後自己就可以登入別台電腦,和一般的鑰匙觀念剛好相反
1.一般是鑰匙給別人,別人就可以開你家大門或是車
2.但這裡是給別人鑰匙可以登入別人的機器(不要弄混了)

使用ssh-agent(使用在需要多次登入但僅設定一次,就可以免重複輸入名字及密碼(如xwindows的登入))
host1
host2
說明
ssh-agent /bin/bash
ssh-add


ssh host2

執行程式代理程式
預設尋找$home/.ssh/id_rsa、id_dsa、dentity則新增如果需要密碼則會
提示輸入
免密碼就可以登入


windows client端的工具
putty,你可以上網尋找,它是免費的,並將ssh程式分成好幾個
ssclient(http://www.ssh.com)是要錢的但是可以在家裡 免費使用

scp
ssh內建ftp的功能,你只要使用預設的環境,一般都可以使用
scp 檔案 主機:/目錄
scp 主機:/檔案完整路徑   .
支援*(萬用),.(目錄)
scp 主機:/a*.rpm .
scp -P 122 主機:/etc/* /tmp

ssh 的安全
雖然ssh比telnet安全,但是並不是絕對安全,如果你有裝logwatch時會發現有許多人在try你的ssh,我還真的被別人使用nobody入 侵過,並建立了ircd的服務,因為ssh只有我一個人在用,所以修改了一些安全設定
  1. 限制root登入
  2. bind內部ip ,因於大部份是內部使用,
  3. 編輯/etc/ssh/sshd_config中的ListenAddress 內部ip
  4. 變更ssh的預設連接port,改成非預定22的 port,
  5. 編輯/etc/ssh/sshd_config中Port 參數
    連線使用方法要加額外的參數如下:
    ssh -p port 
    scp -P port
    由於我已使用portsentry,因此只要是非我開放port的連線,都會被暫時停止連線數小時,因此要找到你設定的port不是那麼簡單
#由於portsentry很容易被愚弄(網路上有專文介紹並比較snort和portsentry),因此想用 snort來取代,但是找不到好書來介 紹,其大頭書的文件還不是很完備