使用ssh登陸服務器


工作中,需要經常登陸到開發機上,一般我們輸入

1 ssh username@example.com

之后,會提示輸入密碼,即可完成登陸。

 

每次都輸入這么多,太麻煩,我用如下方法快速方便地登陸:

第一步,先省去輸入密碼操作,方法如下:

自己的機器使用ssh-keygen生成一對公鑰和私鑰

1 ssh-keygen -t rsa -C 'your email address'

按照提示,默認會生成 ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub

然后我們需要將公鑰id_rsa.pub添加到服務器的authorized_keys,這樣,就可以免密碼登陸了。

用老辦法登陸到服務器上,在服務器上如下操作

1 cd ~/.ssh
2 vim authorized_keys

將上步在本地機器上生成的id_rsa.pub內容附着到服務器上的authorized_key文件后面(如果原文件有內容的話),保存。

這里,還需注意服務器上.ssh文件夾及authorized_key這個文件的訪問權限。

1 chmod 600 authorized_keys
2 chmod 700 .ssh

一切ok,現在使用ssh username@example.com,不需要輸入密碼了,直接就登陸進去了!

第二步,省去輸入username@example.com,此步驟在本地機器上操作

方法較多,可以在.bashrc中添加alias;也可以寫一個.sh腳本文件,執行一下該文件就行。

但是這里,我使用ssh config方法來完成。具體如下

1 cd ~/.ssh
2 vim config

在config文件里,添加如下代碼

1 Host dev
2     hostname example.com
3     user username

現在在console試試

1 ssh dev

就可以直接成功登陸了!

因為上面第一步,我們在服務器的authorized_keys添加了自己的公鑰,所以登陸很方便;但有些時候,我們沒有權限做這個事情,比如登陸公司relay機等,還是得輸入密碼。一個console不夠用,我們想新開一個console tab(如我用iTerm, command+T),這個時候我們在新窗口里面ssh login時,又提示輸入密碼,很煩。下面的辦法可以解決!

在本地機器上,還是打開.ssh/config文件,添加如下幾行

1 Host *
2     ControlPath ~/.ssh/master-%r@%h:%p
3     ControlMaster auto

這樣,我們看到,當第一次連上服務器后,就會在.ssh下生成一個master-usrname@example:port的文件,此后,建立同樣的新連接會共享這個文件,不需要輸入密碼了。

經過這些配置,現在登陸起來是不是方便多了?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM