ssh和scp詳解

1、SSH客戶端使用

  使用ssh客戶端遠程登錄到指定的計算機:python

$ ssh {user}@{remote} -o IdentityFile=/home/id_rsa -o StrictHostKeyChecking=no
  user:遠程機器上的用戶名,若是不指定的話默認爲當前用戶;
  remote:遠程機器的地址,能夠是 IP/域名,或者是 後面會提到的別名;
  port:ssh Server **的端口,SSH服務器默認端口號是 22,不指定則使用默認端口號。

  在工做中,SSH服務器的端口號頗有可能不是22,若是遇到這種狀況就須要使用 -p 選項,指定正確的端口號,不然沒法正常鏈接到服務器。linux

一、免密碼登錄

       ssh無密碼登錄要使用公鑰和私鑰。linux下能夠用ssh-keygen生成公鑰/私鑰對。算法

(1)在客戶端機器生成公鑰/私鑰對

$ ssh-keygen -t rsa -P ''

      直接ssh-keygen而後三次回車就能夠了。會在/home/root(用戶) 下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
       -P表示密碼;-P  '':表示空密碼,這種狀況能夠不使用-P參數。windows

(2)上傳公鑰到服務器

  把客戶端機器生成的id_rsa.pub公鑰複製到服務器的 /home/root(用戶)/.ssh/authorized_keys文件中。centos

$ scp  .ssh/id_rsa.pub   hqs@192.168.2.77:/home/hqs/.ssh/id_rsa.pub
# 把複製的id_rsa.pub添加到.ssh/authorized_keys文件
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys        # authorized_keys的權限要爲600

(3)非對稱加密算法

       使用 公鑰 加密的數據,須要使用 私鑰 解密;
       使用 私鑰 加密的數據,須要使用 公鑰 解密。服務器

二、配置別名

(1)上傳公鑰到服務器(ssh-copy-id)

       執行 ssh-copy-id -p port user@remotessh

(2) 配置別名

       配置別名可讓咱們進一步偷懶,好比:ssh centos來替代上面這一長串命令,在客戶端計算機 ~/.ssh/config 裏面追加一下內容:ide

Host centos
       HostName  服務器ip地址
       User  python
       Port  22

       保存後,可使用ssh centos實現遠程登錄,scp一樣可使用。工具

三、使用rsa祕鑰登錄

$ ssh  {user}@remoteaddr  -o IdentityFile=/home/{user}/.ssh/id_rsa -o StrictHostKeyChecking=no

2、SCP使用

  scp 就是 secure copy,是一個 Linux 下用來進行 遠程拷貝文件 的命令。既能夠將本地內容拷貝到遠程計算機,也能夠將遠程計算機內容拷貝到本地。加密

$ scp  用戶名@ip:文件名或路徑  用戶名@ip:文件名或路徑
       -r:若給出的源文件是目錄文件,則scp將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名;
       -P:若遠程SSH服務器的端口不是22,須要使用大寫字母 -P 選項指定端口。
       -i identity_file: 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。

# 把本地當前目錄下的 01.py 文件 複製到 遠程 家目錄下的 Desktop/01.py
$ scp -P port 01.py user@remote:Desktop/01.py

# 把遠程 家目錄下的 Desktop/01.py 文件 複製到 本地當前目錄下的 01.py
$ scp -P port user@remote:Desktop/01.py 01.py

# 把當前目錄下的 demo 文件夾 複製到 遠程 家目錄下的 Desktop
$ scp -r demo user@remote:Desktop

# 把遠程 家目錄下的 Desktop 複製到 當前目錄下的 demo 文件夾
$ scp -r user@remote:Desktop demo

# 指定RSA祕鑰
# 下載數據
$ scp  -i  ~/.ssh/id_rsa  -r root@remote_ip:/data/www/develop/develop_activity_task  /data/www/activity_task_bak

# 上傳數據
$ [root@localhost fsp]# scp -i /home/id_rsa patch.zip fsp@172.28.0.2:/home/fsp/
Authorized users only. All activities may be monitored and reported.
patch.zip

  注意:

  scp 這個終端命令只能在 Linux 或者 UNIX 系統下使用;

  若是在windows系統中,能夠安裝putty,使用pscp命令行工具或者安裝FileZilla使用FTP進行文件傳輸。

相關文章
相關標籤/搜索