1. Ubuntu14.04下ssh安裝,基本操作及無密碼登陸分享
客戶端安裝
ssh一般是遠程安全登陸
如果是不需要配置ssh服務,只需下載安裝相應的客戶端就行了
sudo apt-get install openssh-client
安裝成功後,在終端上敲上ssh ,
如果有各種選項提示,就說明安裝成功了
服務配置
如果需要配置相應的服務,也不是很難
sudo apt-get install openssh-server
一般就會自動啟動服務了(以後開機也是如此)
為了驗證下我們嘗試一下指令
ps -e | grep sshd
出現相應的進程信息就說明ssh服務正常啟動了
配置文件
一般來說ssh服務默認埠是22,可以通過指令驗證下:
sudo netstat -ntlp | grep ssh
如果有需要該服務埠,可以修改/etc/ssh/sshd_config 文件
vim /etc/ssh/sshd_config
修改Port 22 為Port XXX(任意你想要的埠號,不過要驗證該埠是否已被佔用,可以通過netstat命令)
修改後可能會遇到無法保存的清況,因為在linux 上會有各種許可權問題,所以只要改下文件的許可權就可以了
sudo chmod 777 /etc/ssh/sshd_config
然後就能保存了,為了安全,你要在保存後把許可權改回去
sudo chmod 644 /etc/ssh/sshd_config
最後重新啟動服務就行了
sudo service ssh restart 或者sudo /etc/init.d/ssh 就可以重新啟動了
登陸驗證
接下來就是登陸了,直接在終端上敲指令
ssh username@ip (username 是你的用戶名,ip是你的主機ip)
然後輸入密碼,就行啦
可以先在自己主機上體驗,只需要把ip設置為127.0.0.1就行了
也可以遠程登陸,只需要把ip 改為遠程主機的ip就行啦
無密碼登陸的兩種方法
一般對程序員來說,遠程登陸進行各種操作是家常便飯,所以我們可能會厭煩每次都輸密碼
所以我們可以先寫個shell腳本實現自動登陸,附帶代碼如下,閱讀代碼可能要了解下expect工具
然後還有一種實現的方式,就是講自己密鑰對裡面的公鑰放在遠程主機的.ssh 文件夾下面的authorized_keys文件中,
我們知道,我們這種遠程登陸是基於ssh, 所以就有密鑰對這個概念了,如果大家對密鑰不是很理解,可以參考下我之前關於
數字簽名的博文,但是要比較深刻理解的可能需要參考更多的資料,這里推薦下大家網路下阮一峰的博客
首先,在自己當前用戶的主目錄下查找有沒有.ssh這個目錄,如果沒有可能需要生成密鑰對了
在終端敲下指令
ssh-keygen -t rsa
會在當前用戶的主目錄生成.ssh文件夾,文件夾中有id_rsa(私鑰),和id_rsa.pub(公鑰)兩個文件
我們要做的就是ssh遠程登陸到遠程主機,將我們的公鑰放到遠程主機的.ssh目錄下的authorized_keys文件中
這樣以後我們就可以不需要密碼就實現遠程登陸了
遠程上傳文件或者拷貝文件的指令:
scp
將本地文件拷貝到遠程:scp filename username@ip:path
從遠程將文件拷回本地:scp username@ip:filename 本地路徑
如果是目錄操作,只需要加上 -r選項即可
遠程文件操作可視化
然後經常敲命令對有些人來說也是比較煩的,畢竟可視化的話信息量更大也更人性化,
如果有這方面需求的,推薦下Ubuntu軟體中心的一款ftp軟體 fileZilla ,直接在軟體中心下載安裝就行了
操作起來可能更方便些
然後對於遠程操作,就沒什麼可以講的了,只講一點,習慣用vim文本編輯器,因為你別無選擇
扯下git
ssh 或者git 設置無密碼自動登陸遠程倉庫
一般都會有密碼驗證,不過可以通過設置遠程主機給本地主機提供便利
可以通過公鑰的方式
說道這里,可以扯下git題外話(如果只是想了解ssh操作的童鞋可以止步了):
如果用過git的人應該也知道git也是基於ssh的,所以,我們也可以通過相似的方法來實現
不需要密碼就直接git pull , git push,這樣也是極大方便了我們的開發
因為現如今的開發一般都是利用git分布式版本控制系統來進行協作開發
我們可以在自己的主機上建立git 倉庫,也可以在github上建立,直接把代碼託管到github已經是當下的趨勢
哈哈,算了,不水啦。