ssh是一種網絡通訊協議,用於計算機之間的加密登陸.通常用ssh鏈接服務器有兩種方式:密碼認證與密鑰認證. 密碼認證就是經過傳統的輸入密碼的方式登陸,密鑰認證就是把產生的公鑰註冊到服務器後,用私鑰登陸,這樣就能夠不用每次登陸輸入密碼.特別適合做者這種腦殘記不住密碼的懶人.javascript
密碼認證登陸直接在終端使用ssh命令便可:java
ssh username@xxx.xxx.xxx.xxx
username爲用戶名,後面爲ip.vim
這一步使用ssh-keygen命令生成id_rsa與id_rsa.pub文件:windows
ssh-keygen -t rsa -b 4096 -C "eamil"
其中email爲你的郵箱. 而後一直enter就行了(固然你也能夠修改參數,好比生成的公鑰與私鑰的文件名等,後面要對應).bash
cd ~/.ssh ssh-copy-id -i id_rsa.pub username@xxx.xxx.xxx.xxx
注意複製的是公鑰(.pub結尾,不是私鑰id_rsa).服務器
若出現以上狀況,根據提示說是私鑰的權限問題,修改成:網絡
chmod 600 id_rsa
在windows上使用wsl的要注意,wsl不能直接修改文件權限,須要修改一下/etc/wsl.conf文件(沒有的話就新建).ssh
vim /etc/wsl.conf
輸入加密
[automount] enabled = true options = "metadata,umask=22,fmask=11" mountFsTab = false
退出wsl重啓.rest
ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx
若是上面配置沒出現的話就能夠鏈接上了.
先用密碼認證的方式登陸服務器,修改/etc/ssh/sshd_config(注意有一個d,/etc/ssh下有一個叫ssh_config的文件,不要ssh而後按tab....)
vim /etc/ssh/sshd_config
找到PasswordAuthentication這一行.
修改成no. 而後重啓服務:
service ssh restart
或者
/etc/init.d/ssh restart
重啓服務後鏈接:
ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx