前言前端
最近由於工做的開發環境轉爲Linux,因此儘管我是前端攻城師,仍是要熟悉一下開發環境,因此這裏一邊學習一邊留下筆記.shell
正文vim
要經過終端鏈接一個遠程主機,正常的配置是直接在命令行中:ssh user@192.168.1.1;而後輸入祕密就行了.若是想經過SSH的方式進行免密碼登陸,就要進行必定的配置.服務器
這裏的環境是Mac <--> Linux之間的鏈接,首先經過命令行生成SSH密匙.通常在home目錄下的.ssh文件夾(隱藏)生成密匙,首先進入文件夾.cd ~/.ssh;而後經過ssh keygen命令生成密匙,這裏我生成的一個id_rsa和一個id_rsa.pub兩個密匙.帶有.pub後綴的是公匙,不帶的時私匙.ssh
生成完畢後均可以打開裏面就是一個長長的字符串,下一步要將公匙的內容複製到遠程服務器的固定文件中.這裏是但願將~/.ssh/id_rsa.pub(Mac機)的內容複製到/home/elemedev/.ssh/authorized_keys(Linux機).編輯器
這樣的一個操做你能夠經過命令行的方式,也能夠vim編輯器來複制內容.若是是複製能夠用:sudo scp -r ~/.ssh/id_rsa.pub user@192.168.1.1:~/.ssh/authroized_keys;這一過程可能會報一些問題,好比複製的scp命令提示權限等問題,這裏的權限要精確到目錄,即你提取內容的目錄和你接收內容的目錄是否都擁有權限.這裏最好不要切換root用戶,直接使用sudo升權命令或者修改文件目錄便可. 學習
而後再鏈接的時候,就不須要輸入密碼了,由於已經經過了SSH的密匙驗證.spa
補充命令行
這樣鏈接仍是要寫用戶名和地址的,若是你能夠配置下.ssh/config文件,就能夠經過更加方便的方式進行鏈接.code
在config文件中,按照以下格式配置:
Host 別名 HostName 主機名(IP) Port 端口號(默承認以忽略) User 登陸用戶名 IdentityFile 密匙文件路徑(包含文件名,不須要後綴)
而後直接經過命令: ssh 別名;這樣就能夠鏈接了.