Ubuntu 下安裝 OpenSSH Server
sudo apt-get install openssh-server
(檢視返回的結果,如果沒有出錯,則用putty、SecureCRT、SSH Secure Shell Client等SSH 客戶端軟體,輸入您伺服器的 IP 地址。如果一切正常的話,等一會兒就可以連線上了。並且使用現有的使用者名稱和密碼應該就可以登入了。)
然後確認sshserver是否啟動了:(或用“netstat -tlp”命令)
ps -e | grep ssh
如果只有ssh-agent那ssh-server還沒有啟動,需要/etc/init.d/ssh start,如果看到sshd那說明ssh-server已經啟動了。
ssh-server配置檔案位於/ etc/ssh/sshd_config,在這裡可以定義SSH的服務埠,預設埠是22,你可以自己定義成其他埠號,如222。然後重啟SSH服務:
sudo /etc/init.d/ssh resart
事實上如果沒什麼特別需求,到這裡 OpenSSH Server 就算安裝好了。但是進一步設定一下,可以讓 OpenSSH 登入時間更短,並且更加安全。這一切都是通過修改 openssh 的配置檔案 sshd_config 實現的。
首先,您剛才實驗遠端登入的時候可能會發現,在輸入完使用者名稱後需要等很長一段時間才會提示輸入密碼。其實這是由於 sshd 需要反查客戶端的 dns 資訊導致的。我們可以通過禁用這個特性來大幅提高登入的速度。首先,開啟 sshd_config 檔案:
sudo nano /etc/ssh/sshd_config
找到 GSSAPI options 這一節,將下面兩行註釋掉:
#GSSAPIAuthentication yes #GSSAPIDelegateCredentials no然後重新啟動 ssh 服務即可:
sudo /etc/init.d/ssh restart
再登入試試,應該非常快了吧
利用 PuTTy 通過證書認證登入伺服器
SSH 服務中,所有的內容都是加密傳輸的,安全性基本有保證。但是如果能使用證書認證的話,安全性將會更上一層樓,而且經過一定的設定,還能實現證書認證自動登入的效果。
首先修改 sshd_config 檔案,開啟證書認證選項:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys修改完成後重新啟動 ssh 服務。
下一步我們需要為 SSH 使用者建立私鑰和公鑰。首先要登入到需要建立金鑰的賬戶下,這裡注意退出 root 使用者,需要的話用 su 命令切換到其它使用者下。然後執行:
ssh-keygen
這裡,我們將生成的 key 存放在預設目錄下即可。建立的過程中會提示輸入 passphrase,這相當於給證書加個密碼,也是提高安全性的措施,這樣即使證書不小心被人拷走也不怕了。當然如果這個留空的話,後面即可實現 PuTTy 通過證書認證的自動登入。
ssh-keygen 命令會生成兩個金鑰,首先我們需要將公鑰改名留在伺服器上:
cd ~/.ssh mv id_rsa.pub authorized_keys然後將私鑰 id_rsa 從伺服器上覆製出來,並刪除掉伺服器上的 id_rsa 檔案。
伺服器上的設定就做完了,下面的步驟需要在客戶端電腦上來做。首先,我們需要將 id_rsa 檔案轉化為 PuTTy 支援的格式。這裡我們需要利用 PuTTyGEN 這個工具:
點選 PuTTyGen 介面中的 Load 按鈕,選擇 id_rsa 檔案,輸入 passphrase(如果有的話),然後再點選 Save PrivateKey 按鈕,這樣 PuTTy 接受的私鑰就做好了。
開啟 PuTTy,在 Session 中輸入伺服器的 IP 地址,在 Connection->SSH->Auth 下點選 Browse 按鈕,選擇剛才生成好的私鑰。然後回到 Connection 選項,在 Auto-login username 中輸入證書所屬的使用者名稱。回到 Session 選項卡,輸入個名字點 Save 儲存下這個 Session。點選底部的 Open 應該就可以通過證書認證登入到伺服器了。如果有 passphrase 的話,登入過程中會要求輸入 passphrase,否則將會直接登入到伺服器上,非常的方便。