在通過SSH訪問服務器時,使用SSH密鑰進行認證是尤其重要的。這樣做為服務器增加了額外的保護,確保只有那些擁有密鑰的人才能訪問服務器。
在本地機器上運行下面命令以生成SSH密鑰:
復制代碼代碼如下: ssh-keygen -t rsa
你會看到下面的輸出,詢問要將密鑰寫到哪一個文件裡,並且設置一個密碼:
復制代碼代碼如下: Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): my_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_key.
Your public key has been saved in my_key.pub.
The key fingerprint is:
SHA256:MqD/pzzTRsCjZb6mpfjyrr5v1pJLBcgprR5tjNoI20A
完成之後,就得到兩個文件:
復制代碼代碼如下: my_key</p>
<p>my_key.pub
接下來把my_key.pub拷貝到~/.ssh/authorized_key中
復制代碼代碼如下: cp my_key.pub ~/.ssh/authorized_keys
然後使用下面命令將密鑰上傳到服務器:
復制代碼代碼如下: scp -P16543 authorized_keys user@yourserver-ip:/home/user/.ssh/
至此,你就可以從這台本地機器上無密碼地訪問服務器了。
關閉SSH的密碼認證
既然已經有了SSH密鑰,那麼關閉SSH的密碼認證就會更安全了。再次打開並編輯sshd_config,按如下設置:
復制代碼代碼如下: ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no