ssh和scp詳解


一、SSH客戶端使用

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

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

  在工作中,SSH服務器的端口號很有可能不是22,如果遇到這種情況就需要使用 -p 選項,指定正確的端口號,否則無法正常連接到服務器。

1、免密碼登陸

       ssh無密碼登陸要使用公鑰和私鑰。linux下可以用ssh-keygen生成公鑰/私鑰對。

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

$ ssh-keygen -t rsa -P ''

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

(2)上傳公鑰到服務器

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

$ 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)非對稱加密算法

       使用 公鑰 加密的數據,需要使用 私鑰 解密;
       使用 私鑰 加密的數據,需要使用 公鑰 解密。

2、配置別名

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

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

(2) 配置別名

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

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

       保存后,可以使用ssh centos實現遠程登陸,scp同樣可以使用。

3、使用rsa秘鑰登陸

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

二、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進行文件傳輸。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM