前面已經講過如何在windows下利用cygwin搭建ssh服務,但是使用賬戶密碼的驗證登錄模式比較麻煩,尤其是在它作為多人訪問的服務的時候。
下面講一下如何使用公鑰認證的方式來登錄。
網上這一類的文章很多,但putty來登錄時要注意個問題,puttygen生成的公鑰私鑰是不能被ssh識別。得使用ssh-keygen命令來創建鑰匙對。(之前也按照網上的教程使用puttygen來生成key,浪費了好多時間)
1.創建密鑰對:
$ ssh-keygen -t rsa
一路回車即可!
中間有提示是否給私鑰加密,這個看個人喜歡。下面命令則是修改私鑰密碼。
例:私鑰文件是/cygdrive/d/id_rsa,把它新密碼重置為空,執行后會提示輸入舊密碼驗證。
$ ssh-keygen -p -f /cygdrive/d/id_rsa -N ''
2.密鑰設置:
$ cd /home/username/
$ mkdir .ssh && chmod 700 .ssh
$ cd .ssh/
$ cat /cygdrive/d/id_rsa > authorized_keys (將公鑰放置其中)
$ chmod 600 authorized_keys
3./etc/sshd_config配置
要把下面這幾項的注釋去掉,并對應值改為如下內容:
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
改完后要重啟ssh服務才能生效。
4.本機用bash命令行登錄測試一下:
ssh -i /cygdrive/d/id_rsa username@127.0.0.1
加個-v參數則看到具體調試信息,無法正常登錄時可以調試下
ssh -v -i /cygdrive/d/.ssh/id_rsa git@127.0.0.1
使用putty登錄的話,則需要先把該私鑰轉換成它兼容的格式。
使用puttygen導入私鑰,再點“Save private key”即生成它兼容的私鑰文件了。