天天看點

SSH 使用密鑰登入并禁止密碼登入實踐

SSH 使用密鑰登入并禁止密碼登入實踐

<a target="_blank"></a>

無論是個人的vps還是企業允許公網通路的伺服器,如果開放22端口的ssh密碼登入驗證方式,被衆多黑客暴力猜解捅破菊花也可能是經常發生的慘劇。企業可以通過防火牆來做限制,普通使用者也可能借助修改22端口和強化弱密碼等方式防護,但目前相對安全和簡單的方案則是讓ssh使用密鑰登入并禁止密碼登入。

這是最相對安全的登入管理方式
建議設定并牢記passphrase密碼短語,以linux生成為例

linux:ssh-keygen -t rsa

[私鑰 (id_rsa) 與公鑰 (id_rsa.pub)]

windows:securcrt/xshell/putty

[ssh-2 rsa 2048]

<code>#生成ssh密鑰對</code>

<code>ssh-keygen -t rsa</code>

<code></code>

<code>generating public/private rsa key pair.</code>

<code>#建議直接回車使用預設路徑</code>

<code>enter file in which to save the key (/root/.ssh/id_rsa):</code>

<code>#輸入密碼短語(留白則直接回車)</code>

<code>enter passphrase (empty for no passphrase):</code>

<code>#重複密碼短語</code>

<code>enter same passphrase again:</code>

<code>your identification has been saved in /root/.ssh/id_rsa.</code>

<code>your public key has been saved in /root/.ssh/id_rsa.pub.</code>

<code>the key fingerprint is:</code>

<code>aa:8b:61:13:38:ad:b5:49:ca:51:45:b9:77:e1:97:e1 [email protected]</code>

<code>the key's randomart image is:</code>

<code>+--[ rsa 2048]----+</code>

<code>| .o. |</code>

<code>| .. . . |</code>

<code>| . . . o o |</code>

<code>| o. . . o e |</code>

<code>|o.= . s . |</code>

<code>|.*.+ . |</code>

<code>|o.* . |</code>

<code>| . + . |</code>

<code>| . o. |</code>

<code>+-----------------+</code>

也可以手動在用戶端建立目錄和authorized_keys,注意修改權限

<code>#複制公鑰到無密碼登入的伺服器上,22端口改變可以使用下面的指令</code>

<code>#ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"</code>

<code>ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]</code>

<code>#編輯sshd_config檔案</code>

<code>vi /etc/ssh/sshd_config</code>

<code>#禁用密碼驗證</code>

<code>passwordauthentication no</code>

<code>#啟用密鑰驗證</code>

<code>rsaauthentication yes</code>

<code>pubkeyauthentication yes</code>

<code>#指定公鑰資料庫檔案</code>

<code>authorsizedkeysfile .ssh/authorized_keys</code>

重新開機ssh服務前建議多保留一個會話以防不測

<code>#rhel/centos系統</code>

<code>service sshd restart</code>

<code>#ubuntu系統</code>

<code>service ssh restart</code>

<code>#debian系統</code>

<code>/etc/init.d/ssh restart</code>

可以在== 後加入使用者注釋辨別友善管理

<code>echo 'ssh-rsa xxxx' &gt;&gt;/root/.ssh/authorized_keys</code>

<code># 複查</code>

<code>cat /root/.ssh/authorized_keys</code>

擴充閱讀

<b>原文釋出時間為:2015-07-08</b>

<b></b>

<b>本文來自雲栖社群合作夥伴“linux中國”</b>

繼續閱讀