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