SSH簡介html
SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡工做小組(Network Working Group)所制定;SSH 爲創建在應用層和傳輸層基礎上的安全協議。linux
SSH 是目前較可靠,專爲遠程登陸會話和其餘網絡服務提供安全性的協議。經常使用於遠程登陸,以及用戶之間進行資料拷貝。git
利用 SSH 協議能夠有效防止遠程管理過程當中的信息泄露問題。SSH 最初是 UNIX 系統上的一個程序,後來又迅速擴展到其餘操做平臺。SSH 在正確使用時可彌補網絡中的漏洞。SSH 客戶端適用於多種平臺。幾乎全部 UNIX 平臺—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其餘平臺,均可運行 SSH。shell
有關SSH協議的部分能夠參考如下博客安全
http://blog.csdn.net/macrossdzh/article/details/5691924服務器
SSH安裝網絡
查看SSH版本信息
app
在Ubuntu 14.04 LTS上默認安裝了SSH客戶端ssh
可使用命令測試
dpkg -l | grep ssh-client
查看相關客戶端信息
使用
ssh -V
能夠查看ssh的版本
安裝SSH服務器
sudo apt-get install openssh-server
安裝完成後會默認開啓SSH服務
重啓服務
sudo service ssh restart
測試使用
ssh -l username hostip
*username:被遠程登錄的用戶名
*hostip:被遠程的登錄的IP
登錄遠程主機
ssh username@hostip
簡化命令的技巧
方法一
配置SSH
在~/.ssh目錄下建立文件config
touch ~/.ssh/config
在config文件中編寫
Host *test HostName 192.168.1.102 User doggy
*將test部分替換成本身的內容便可
配置完成後使用命令
ssh test
就能夠實現登錄192.168.1.102上的用戶doggy了
此處的test能夠換成任意名字
方法二
將hostip添加到/etc/hosts中,使用以下格式
hostip name
name:給ip取的別名
此時可使用命令
ssh doggy@vb
登錄到遠程主機
doggy:個人遠程主機用戶名
可是依然很麻煩,接着簡化
在~/bin中建立一根文件doggy_ssh(名字自取),並添加以下內容
ssh username@hostip
保存退出,添加可執行權限
sudo chmode +x doggy_ssh
如今就能夠在終端直接使用 doggy_ssh 登錄遠程主機了(這下好多了)
問題來了,每次在使用ssh登錄是總要輸入密碼,使用如下方法能夠避免
生成SSH密鑰
ssh-keygen
而後一路回車,使用SSH的默認值,此時會在~/.ssh中生成一個公鑰,以及一個私鑰,這個公鑰就是咱們須要的
在SSH的服務器端的~/.ssh目錄下建立文件authorized_keys,而後將剛剛生成的公鑰添加到該文件中
此時就能夠實現不用輸入密碼登錄遠程主機
向SSH服務器添加公鑰的另外一種方法,使用命令
ssh-copy-id -i ~/.ssh/id_rsa.pub hostip
使用scp實現文件和目錄拷貝,實際上scp使用與cp的使用是同樣的,只是在使用scp時,要添加遠程主機的ip,如下是詳解
SSH 提供了一些命令和 shell 用來登陸遠程服務器。在默認狀況下,不容許用戶拷貝文件,但仍是提供了一個「 scp 」命令,使用方法以下:
本地文件複製到遠程:
scp FileName RemoteUserName@RemoteHostIp:RemoteFile scp FileName RemoteHostIp:RemoteFolder scp FileName RemoteHostIp:RemoteFile
本地目錄複製到遠程:
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder scp -r FolderName RemoteHostIp:RemoteFolder
遠程文件複製到本地:
scp RemoteUserName@RemoteHostIp:RemoteFile FileName scp RemoteHostIp:RemoteFolder FileName scp RemoteHostIp:RemoteFile FileName
遠程目錄複製到本地:
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName scp -r RemoteHostIp:RemoteFolder FolderName
這裏只測試一個命令,其它操做都是大同小異。
遠程文件複製到本地:
scp RemoteUserName@RemoteHostIp:RemoteFile FileName
RemoteUserName:遠程用戶名
RemoteHostIp:遠程ip
RemoteFile:遠程文件,可帶上路徑
FileName:拷貝到本地後的名字,可帶上路徑,不帶路徑拷貝到當前目錄
今天在使用scp拷貝文件是發現一個很簡便的方法,固然也不是新奇的方法,只是結合使用了簡化命令技巧中的方法一而已
前提:按照方法一配置好相關的config文件
例如:我要將計算機Doggy上 /home/doggy/test 文件拷貝到計算機 bao 上的/home/bao/Downloads中
可使用命令
scp /home/doggy/test bao:/home/bao/Downloads
Ps:本文內容參考的有關博客:
使用ssh-keygen和ssh-copy-id三步實現SSH無密碼登陸
http://www.linuxidc.com/Linux/2015-03/115056.htm
若是在使用是遇到困難,能夠參考happypeter的有關視頻
視頻不長,可是我的認爲講的仍是很清晰的