客戶端安裝
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已經是當下的趨勢
哈哈,算了,不水啦。