Amazon SSH Putty Setup 22

最近筆者需要設計很多有關 Linux 系統自動化的工作,通過登入主機才可以執行,SSH 預設是需要驗證帳號和密碼才能使用。為了自動化與方
便,因此想寫一個自動登入遠端主機執行命令的程式,最簡單也可以透過 Expect Shell 的方式來達成,但是以 Expect 腳本語言與密碼保護方式來進行登入的速度較為緩慢,還是透過正統的 SSH 登入方式比較恰當。

我們都知道 SSH 在連線的時候會進行 SSL 加密,其實也提供透過金鑰的方式來驗證身份,只要將產生出來的 Public Key 放置在伺服器上就可以不用輸入密碼直接連線,以下會介紹所使用的方法。

產生SSH登入金鑰

先切換至 Home Directory
cd ~

產生一組金鑰,畫面如下:
ssh-keygen -t dsa


linux_ssh_20141223_01

產生的Key 會在 Home Directory 中的 .ssh 資料夾(id_dsa, id_dsa.pub),其中的 id_dsa.pub 就是我們要放置在遠端伺服器的 Key。

linux_ssh_20141223_02

接著我們將id_dsa.pub傳送到我們想要自動登入的平台。

scp id_dsa.pub sj@your-server.com:~

然後使用ssh方式連接至這個平台,透過以下命令建立authorized_keys檔案。
ssh sj@your-server.com
cd ~
cat id_dsa.pub >> .ssh/authorized_keys


linux_ssh_20141223_03

登出後重新登入,便可以跳過驗證程序,如下圖:

linux_ssh_20141223_04


 


 活用金鑰:讓你無需密碼亦可直接存取 Linux SSH

 https://www.facebook.com/hkitblog