天天看點

遠端登陸密鑰登入

轉載至http://blog.chinaunix.net/uid-9881170-id-348605.html

 啟用密鑰 ssh登陸伺服器:  

首先得生成一對密鑰,一把私有密鑰和一把公用密鑰,公用密鑰用于對消息進行加密,隻有擁有私有密鑰的人才能對該消息進行解密。把公鑰放到我們要遠端登入的主機(remote)上(~/.ssh/authorized_keys),專用密鑰放置到本地機(local)或是U盤。

認證過程中,romote接收到local的登入請求後,romote的sshd 會生成一個随機數,并用我們先前拷貝過去的公用密鑰對這個随機數進行加密,然後,sshd把加密了的随機數發回給正在local上運作的ssh程式,然後是local計算機對該随機數的解密,再發回給romote,通過後,romote則允許local登入了。

以SSHSecureShellClient-3.2.9為例

首先我們建立屬于你自己的公鑰和私鑰:

(1)SSH Secure Shell的Edit菜單àSetting菜單,找到Keys,然後Generate New..開始生成新密鑰;

(2)下一步(全部預設即可),選擇DSA吧(RSA也可以,但RSA和DSA差不多,DSA耗資源少點,其實這點資源消耗可以忽略不計);

(3)下一步,File,取個檔案名:zx-ssh,别的可以不填直接點“完成”,Passphrase寫了則每次連接配接時需要輸入,我喜歡連密碼都不輸;為了實作自動登入,passphrase為空,但這樣不安全,還是設定一個passphrase吧,如果你的ssh secure shell界面不關閉,輸入一是passphrase就可以一直好用的,有passphrase可以防止私鑰被人盜用;

(4)找到密鑰存放的目錄:我是windows7,在C:\Users\ZX\AppData\Roaming\SSH\UserKeys,有2個檔案:zx-ssh(私鑰,與公鑰一起存放到本地或複制到U盤,在沒有使用該過密鑰的機器上要通路伺服器,則需要導入密鑰:SSH Secure Shell的Edit菜單àSetting菜單,找到Keys,然後Import導入,往往在Import是,要求你輸入的是公鑰檔案名,沒關系,導入公鑰則私鑰也導入成功,在配置檔案夾中會自動生成2個檔案,就是導入的公鑰和私鑰;zx-ssh.pub(公鑰,上傳到伺服器使用者主目錄中,等待轉換格式,需要轉換為openssh格式才可以被伺服器識别);到此為止,windows這邊已經準備好了。

(5)伺服器端(我以freebsd為例),修改配置檔案:vi/etc/ssh/sshd-config

啟用ChallengeResponseAuthentication no #啟用此項才可以真正取消密碼驗證

啟用UsePAM yes

(6)将生産的公鑰(zx-ssh.pub),上傳到伺服器使用者主目錄(自己想辦法傳),複制到使用者主目錄下的.ssh目錄中,然後進行格式轉換(轉換為openssl格式):

cd /usr/home/使用者主目錄/.ssh/

ssh-keygen -X -f zx-ssh.pub>>.ssh/authorized_keys #轉換格式openss格式,并将公鑰導入到authorized_keys檔案中

chmod 0640 authorized_keys#設定權限,使該檔案僅允許屬主讀寫

rm zx-ssh.pub#删除上傳的公鑰,要不然留住也沒用

這裡要注意一個問題,就是這個linux主機如果有多個公鑰,要注意每個公鑰後面需要有個回車或是換行,不能将多個公鑰直接羅列在一行。

應該重新檢查一下你的authorized_keys的權限(640)。也可能要檢查.ssh目錄的權限,.ssh目錄應該對“組使用者”(group)和“其它使用者”(other)沒有寫的權限。運作下面的指令來取消“組使用者”(group)和“其它使用者”(other)對于.ssh目錄的寫權限(740):chmod go-w ~/.ssh(也可以chmod 740 ~/.ssh,一樣的)

搞定了!在我的/etc/ssh/sshd-config中共4條:

PermitRootLogin yes

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM yes

Subsystemsftp/usr/libexec/sftp-server

以SecureCRT_SFX 6.61(目前網上最新版)為例,首先是建立自己的公鑰和私鑰:

(1)secureCRT軟體的獲得,securecrt 和 securesfx一個是ssh一個是scp,這兩個軟體是關聯的,在其首頁www.vandyke.com上scrt_sfx661-x86.exe包含這2款軟體(在crackteam.ws網站上可以找到注冊程式,你在網上也可以很好找到漢化版,這樣不好呀!強烈建議購買正版軟體)。

(2)首先是建立自己的公鑰和私鑰:

運作SecureCRT,工具à建立公鑰à采用DSA類型àPassphrase可以不寫,但我願意每次登陸時輸入這個,因為有這個Passphrase則私鑰被人偷走也不怕àKey length 我改成2048(長點安全點)à注意存放目錄和格式,請選擇OpenSSH Key format格式,這樣可以相容大多數的linux、freebsd伺服器,記住存放目錄à完成

(3)這樣在存儲目錄找到2個檔案,以我的為例:ZX_Identity(私鑰),ZX_Identity.pub(公鑰),私鑰自己留好,或複制到U盤,以備急需,公鑰直接傳輸到你的Unix、linux、freebsd伺服器上的~/.ssh目錄(使用者主目錄下的.ssh目錄),并執行cat ZX_Identity.pub >> ~/.ssh/authorized_keys将公鑰密文追加到認證檔案中,這裡要注意一個問題,就是同一個使用者名(假設是root),現在要設定多個公鑰,那麼在利用cat追加某個公鑰之前,一定要先vi ~/.ssh/authorized_keys看一下原有公鑰後面是否有回車,要確定新追加進來的公鑰沒有直接連在其他公鑰的行尾,新密鑰一定要在新的一行,否則,這些公鑰沒有分開,就不好用了。注意.ssh目錄的權限:chmod 740 ~/.ssh; chmod 640 ~/.ssh/authorized_keys;

(4)linux/freebsd等ssh伺服器端密鑰登入配置:

我以freebsd為例),修改/etc/ssh/sshd-config,

啟用ChallengeResponseAuthentication no #啟用此項才可以真正取消密碼驗證

啟用UsePAM yes

重新開機sshd服務:/etc/rc.d/sshd restart

一切都OK了!

如果更換電腦,需要導入私鑰,很簡單,在建立連接配接的時候,選擇SSH2的PblicKey,在其Properties中導入即可。

繼續閱讀