非root權限scp免密傳輸


環境說明

有兩台服務器,client端沒有root權限,接收端server有root權限。現在需要從client端免密scp文件到server端。
因為client端沒有.ssh文件夾的訪問權限,所以不能直接使用client端的密鑰,需要從server端生成密鑰文件。
整個流程操作步驟如下:
1、server端生成密鑰,並且把公鑰添加到authorized_keys
2、把私鑰上傳到client端
3、使用scp -i指定密鑰傳輸

server端配置

生成密鑰對

執行ssh-keygen -t rsa,完成之后在/root/.ssh文件夾可以查看到密鑰對id_rsa為密鑰文件,id_rsa.pub為公鑰文件;
執行cp -rf /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys即可

client端配置

上傳私鑰

把server端的id_rsa上傳至client端即可

使用scp傳輸

1.命令格式:

scp [參數] [原路徑] [目標路徑]

2.命令功能:

scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux服務器之間復制文件和目錄。

3.命令參數:

-1 強制scp命令使用協議ssh1

-2 強制scp命令使用協議ssh2

-4 強制scp命令只使用IPv4尋址

-6 強制scp命令只使用IPv6尋址

-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)

-C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)

-p 保留原文件的修改時間,訪問時間和訪問權限。

-q 不顯示傳輸進度條。

-r 遞歸復制整個目錄。

-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。

-c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。

-F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。

-i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。

-l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。

-o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式,

-P port 注意是大寫的P, port是指定數據傳輸用到的端口號

-S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

此處用到的就是-i參數
使用前記得把id_rsa權限改成600,權限太大會報錯
scp -i id_rsa auto_feature/featurefile/特征庫* root@172.16.16.199:/HYTF/TD/特征庫文件/第二代特征庫/
備注:
1、此處id_rsa必須與server端的公鑰配對
2、如id_rsa文件放在其他目錄,記得加上路徑

阿里雲時間

通用1888:點擊領取
Hi go季:爆款5折
高性能服務器:2-5折


免責聲明!

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



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