ssh實現遠程登錄以及使用技巧

  • 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無密碼登陸   

Linux下SSH安裝配置使用詳解:

http://www.linuxidc.com/Linux/2015-03/115056.htm

若是在使用是遇到困難,能夠參考happypeter的有關視頻

http://haoduoshipin.com/v/62

視頻不長,可是我的認爲講的仍是很清晰的

相關文章
相關標籤/搜索